• Linux日志清理工具:Logclean-ng编译


          《黑客大曝光》在攻击Unix章节,有提到linux日志清理工具Logclean-ng,给的评价也挺高的。正好手头上有需要,就下载下来玩一下。

          开始以为按照说明编译就可以了,后来发现其实有个小坑的。在这里记录一下,可能有些朋友会用得到。

          Logclean-ng的源码下载地址:https://packetstormsecurity.com/files/46742/logclean-ng_1.0.tar.gz.html。Logclean-ng工具建立在一个用来简化编写日志清理程序的函数库上,这个函数库是Liblogclean。在后续编译Logclean-ng之前,要先编译Liblogclean这个库。

          我在kali虚拟机(32位和64位的需要修改的地方略有不同)上演示一下。

          32位系统演示

          首先进入Liblogclean文件夹,编译Liblogclean这个库,来看下可能遇到的错误:

    logclean

          从图中可以看到(注意红框里的内容),是某个结构体中的成员变量有问题。先看下logs_wtmp.c中出错的代码,发现引用了头文件utmp.h。我们来看下linux源码中对应头文件该结构体的定义。

          utmp.h文件在/usr/include下面,打开发现如下图所示:

    logclean2

          接下来找到bits/utmp.h(在/usr/include/i386-linux-gnu/bits文件夹下面),查看结构体utmp的定义如下所示:

    logclean3

          注意红色下划线的部分,结构体这个变量的定义与Liblogclean库中的定义有差别,修改一下即可。这是因为版本更新的原因。后续在64位系统下出现编译问题也有部分是因为版本不兼容导致的。

          将logs_wtmp.c源代码中的save.__unused修改为save.__glibc_reserved之后,再次编译Liblogclean,即可编译成功。

          接下来返回到logclean-ng_1.0文件夹下面,编译logclean-ng_1.0。如下图所示,已经编译成功:

    logclean4

          运行一下试试:

    logclean5

          32位下已经OK了,继续编译64位下的logclean-ng吧。

          64位系统演示

          先按照32位系统下编译Liblogclean这个库的方法,来看下可能遇到的错误:

    logclean6

          按照提示,我们修改一下Makefile文件中的编译参数,在CFLAGS中加入-fPIC。经过我的测试,凡是涉及到编译的地方,都需要在Makefile中的CFLAGS加入-fPIC这个编译选项。涉及到ncrypt和libmix中的Makefile文件。进入libmix文件夹,首先执行make clean,然后执行make,可以发现已经编译成功,在目录下生成了所需要的动态链接库。然后返回上级目录,编译Liblogclean。记得参照32位编译所描述的将logs_wtmp.c源代码中的save.__unused修改为save.__glibc_reserved之后再进行编译。发现出现如下错误:

    logclean7

          为了解决这个问题,需要进行几步操作之后再进行编译。为何这样做在这里有说明。

          编译之前进行如下操作:

    cd /usr/lib/gcc/x86_64-linux-gnu/4.9
    
    cp crtbeginT.o crtbeginT.orig.o
    
    cp crtbeginS.o crtbeginT.o

          编译成功后再修改回来:

    cd /usr/lib/gcc/x86_64-linux-gnu/4.9
    
    cp crtbeginT.orig.o crtbeginT.o
    
    rm crtbeginT.orig.o
    

          最后一步和之前32位编译的类似。好了,到此就编译成功了。如下图所示:

    logclean8

          继续运行一下:

    logclean9

          32位和64位编译该工具的步骤就到此为止了。至于logclean-ng如何使用,可以看help说明,也可以参考《黑客大曝光》中的说明。

  • 相关阅读:
    ASP.NET SignalR HubPipelineModule
    MongoDB新版本特性
    Xamarin向iOS和Android引入C# Async支持
    Redis开源文档《Redis设计与实现》[转]
    WCF的追踪分析工具——SvcPerf
    Windows Azure移动服务更新,支持Android、活动目录和更多语言,并支持在东亚地区部署服务
    社区网站系统 jsGen
    单元测试同时支持 NUnit/MSTest
    .NET的微型Web框架 Nancy
    通过二维码登录(CSC模式)
  • 原文地址:https://www.cnblogs.com/hiccup/p/5423967.html
Copyright © 2020-2023  润新知