用AI在开源情报方向养号

admin 2023年12月27日22:23:36评论31 views字数 3866阅读12分53秒阅读模式

用AI在开源情报方向养号今年4月发过一篇AI的osint用法,利用ai在社交平台模拟正常用户来维护账号,如下:

用AI开发逼真的社交傀儡帐户

这个功能看着用途小,但其实有过真实开源情报工作的人都明白,维护各平台的账号问题是一个很耗时和耗精力的事(类似于养号),用AI实现的话,稳定不说,还能省出很多人力来,也有小伙伴问过实现的问题,陆续回答过一些实现方式,其实有思路后其它的部分都很简单,无非是代码问题和一些处理思路。

简单来说,目的就是利用各类大型语言模型(如chatgpt),进行模拟正常用户的账号的使用。

其实就是设定一个大主题或身份,让chatpt随便生成就行,然后将其发布到社交媒体上(在本例中为 twitter)。就这样,我们将模拟真实人员在我们帐户上的活动。甚至代码生成也可以交给chatgpt来生成(需要中文账号就换成中文关键字),python代码如下:
def get_tip() -> Optional[str]:response = openai.ChatCompletion.create(model="gpt-3.5-turbo-16k",messages=[{"role": "system", "content":"You are a human knowledgeable in ""cybersecurity, programming and AI."},{"role": "user", "content":"Can you give me a tweet-length ""cybersecurity, programming or AI tip ""(or trivia)? It can also be a pun."}])return response.choices[0].message['content']

把要使用 OpenAi 的 API和 Twitter API key拿到并设置好,因为不是复杂的交互,可以用3.5的gpt。通过将它们存储在环境变量中

# 环境变量设置openai_api_key = os.getenv('OPENAI_API_KEY')x_api_key = os.getenv('X_API_KEY')x_api_secret_key = os.getenv('X_API_SEC')x_access_token = os.getenv('X_ACC_TOKEN')x_access_token_secret = os.getenv('X_ACC_TOKEN_SEC')x_bearer_token = os.getenv('X_BEARER_TOKEN')# 初如化OpenAIopenai.api_key = openai_api_key

现在,有了正常的环境设置后,就能正式用于账号使用了,如下

def post_to_twitter(message: str) -> None:client = tweepy.Client(consumer_key=x_api_key,consumer_secret=x_api_secret_key,access_token=x_access_token,access_token_secret=x_access_token_secret,bearer_token=x_bearer_token)client.create_tweet(text=message)

因为正常不可能发布时间有太准确的规律,所以加一些发布时间随机化,

if __name__ == "__main__":if random.randint(1, 100) == 1:tip = get_tip()if tip:delay_minutes = random.randint(0, 60)time.sleep(delay_minutes * 60)post_to_twitter(tip)

注意事项:

    我使用的python3,需要安装openai tweepy库

    有gpt4的账户可以改为gpt4,可以用于更多也更细腻的一些用途,比如回复和带有图片等。

    因为使用方式问题,没加入定时部分,有需要可以用window/linux的定时任务来辅助。

  • OPENAI_API_KEY :OpenAI API 密钥。

  • TWITTER_API_KEY :Twitter API 密钥。

  • TWITTER_API_SECRET_KEY :Twitter API 密钥。

  • TWITTER_ACCESS_TOKEN :Twitter 访问令牌。

  • TWITTER_ACCESS_TOKEN_SECRET :Twitter 访问令牌密钥。

    如果有些app类的,并且不是可控协议的,可以用按键精灵代码配合。

用AI在开源情报方向养号

完整代码:

import osimport openaiimport tweepyimport loggingimport randomimport timefrom typing import Optional

# Setup logging to write to a filelogging.basicConfig(filename='cybersecurity_tips_log.txt', level=logging.INFO, format='%(asctime)s - %(message)s')

# Load environment variablesopenai_api_key: str = os.getenv('SOCK_PUPPET_OPENAI_API_KEY')twitter_api_key: str = os.getenv('SOCK_PUPPET_TWITTER_API_KEY')twitter_api_secret_key: str = os.getenv('SOCK_PUPPET_TWITTER_API_SECRET')twitter_access_token: str = os.getenv('SOCK_PUPPET_TWITTER_ACCESS_TOKEN')twitter_access_token_secret: str = os.getenv('SOCK_PUPPET_TWITTER_ACCESS_TOKEN_SECRET')twitter_bearer_token: str = os.getenv('SOCK_PUPPET_TWITTER_BEARER_TOKEN')

# Initialize OpenAIopenai.api_key = openai_api_key



def get_tip() -> Optional[str]: try: response = openai.ChatCompletion.create( model="gpt-3.5-turbo-16k", messages=[ {"role": "system", "content": "You are a human knowledgeable in " "cybersecurity, programming and AI."}, {"role": "user", "content": "Can you give me a tweet-length " "cybersecurity, programming or AI tip " "(or trivia)? It can also be a pun."} ] ) # Remember to remove the double quotes from the response! return response.choices[0].message['content'].replace('"', '') except Exception as e: logging.error(f"Error in fetching cybersecurity tip: {e}") return None



def post_to_twitter(message: str) -> None: try: client = tweepy.Client( consumer_key=twitter_api_key, consumer_secret=twitter_api_secret_key, access_token=twitter_access_token, access_token_secret=twitter_access_token_secret, bearer_token=twitter_bearer_token ) client.create_tweet(text=message) logging.info(f"Cybersecurity tip posted on Twitter: {message}") except Exception as e: logging.error(f"Error in posting to Twitter: {e}")



if __name__ == "__main__": if random.randint(1, 100) == 1: tip = get_tip()

if tip: delay_minutes = random.randint(0, 60) logging.info(f"Waiting for {delay_minutes} minutes before posting") time.sleep(delay_minutes * 60) # Convert minutes to seconds post_to_twitter(tip) else: logging.info("No cybersecurity tip was posted.") else: logging.info("Script did not run this time.")

原文始发于微信公众号(军机故阁):用AI在开源情报方向养号

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月27日22:23:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   用AI在开源情报方向养号https://cn-sec.com/archives/2339910.html

发表评论

匿名网友 填写信息